DSB的调制与解调

DSB的调制与解调,第1张

1) 主程序

dt=0.001 %时间采样间隔

fm=1%信源最高频率

fc=10 %载波中心频率

T=5 %信号时长

t=0:dt:T

mt=sqrt(2)*cos(2*pi*fm*t)%信源

% N0=0.01 %白噪声单边功率谱密度

%DSB调制

s_dsb=mt.*cos(2*pi*fc*t)

B=2*fm

% noise=noise_nb(fc,B,N0,t)

% s_dsb=s_dsb+noise

figure(1)

subplot(3,1,1)

plot(t,s_dsb) %画出DSB信孙虚敬号波形

hold on

plot (t,mt,'r--') %标出m(t)波形

title('DSB调誉旦制信号')

xlabel('t')

%DSB解调

rt=s_dsb.*cos(2*pi*fc*t)

[f,rf]=T2F(t,rt)

[t,rt]=lpf(f,rf,fm)

subplot(3,1,2)

plot(t,rt)

title('相干解调则慎后的信号波形')

xlabel('t')

rt=rt-mean(rt)

subplot(3,1,3)

[f,sf]=T2F(t,s_dsb)

psf=(abs(sf).^2)/T

plot(f,psf)

axis([-2*fc 2*fc 0 max(psf)])

title('DSB信号功率谱')

xlabel('f')

2) 信号的傅里叶变换函数

function [ f,sf] = T2F(t,st)

dt=t(2)-t(1)

T=t(end)

df=1/T

N=length(st)

f=-N/2*df:df:N/2*df-df

sf=fft(st)

sf=T/N*fftshift(sf)

end

3) 低通滤波函数

function [ t,st] = lpf( f,sf,B)

df=f(2)-f(1)

T=1/df

hf=zeros(1,length(f))

bf=[-floor(B/df):floor(B/df)]+floor(length(f)/2)

hf(bf)=1

yf=hf.*sf

[t,st]=F2T(f,yf)

st=real(st)

end

4) 高斯白噪声函数

function [ out ] = noise_nb( fc,B,N0,t )

dt=t(2)-t(1)

fmx=1/dt

n_len=length(t)

p=N0*fmx

rn=sqrt(p)*randn(1:n_len)

[f,rf]=T2F(t,rn)

[t,out]=bpf(f,rf,fc-B/2,fc+B/2)

end

5) 信号的反傅里叶变换函数

function [t,st] =F2T(f,sf )

df=f(2)-f(1)

fmx=(f(end)-f(1)+df)

dt=1/fmx

N=length(sf)

T=dt*N

t=0:dt:T-dt

sff=fftshift(sf)

st=fmx*ifft(sff)

end

数据自己改动

echo off

close all

clc

t0=0.2

ts=0.001

fs=1/ts

%*********************************************************************

fc=300

%*********************************************************************

t=[-t0/2:ts:t0/2]

df=0.25

%*********************************************************************

m=sinc(100*t)

%*********************************************************************

c=cos(2*pi*fc.*t)

u=m.*c

y=u.*c

[M,m,df1]=fftseq(m,ts,df) %对调制信号m(t)求傅里叶变换

M=M/fs

[U,u,df1]=fftseq(u,ts,df) %对调制后的信号u求傅里叶变换

U=U/fs%缩放

[Y,y,df1]=fftseq(y,ts,df) %对混频后的信号y求傅里叶岩前纳变

Y=Y/fs%缩放

%*********************************************************************

%以悔橘下这段程序是专门用来构建在频谱上的滤波器的方法

f_cutoff=150

n_cutoff=floor(150/df1)

f=[0:df1:df1*(length(y)-1)]-fs/2

H=zeros(size(f))

H(1:n_cutoff)=2*ones(1,n_cutoff)

H(length(f)-n_cutoff+1:length(f))=2*ones(1,n_cutoff)

%********************************************************************

DEM=H.*Y

dem=real(ifft(DEM))*fs %ifft为傅里叶反变换函数,滤波器的输出-解调信号

%乘以fs是为了恢复原信号,因为前面使用了缩放

disp('按任意键可看到混频的效果')

pause

figure(1)

subplot(3,1,1)

plot(f,fftshift(abs(M)))%fftshift:将FFT中的DC分量移到频谱中心

title('原调制信号的频谱图')

xlabel('频率f')

subplot(3,1,2)

plot(f,fftshift(abs(U)))

title('已调信号的频谱图')

xlabel('频率f')

subplot(3,1,3)

plot(f,fftshift(abs(Y)))

title('混频信号的频谱图')

xlabel('频率f')

disp('按任意键可看到混频器输出的波形的频谱效果')

pause

figure(2)

subplot(3,1,1)

plot(f,fftshift(abs(Y)))

title('混频信号的频谱图')

xlabel('频率f')

subplot(3,1,2)

plot(f,fftshift(abs(H)))

title('低通滤波器的频谱图')

xlabel('频率f')

subplot(3,1,3)

plot(f,fftshift(abs(DEM)))

title('混频信粗没号通过滤波器后的信号的频谱图')

xlabel('频率f')

disp('按任意键可看到原调制信号和接受信号频谱的比较')

pause

figure(3)

subplot(2,1,1)

plot(f,fftshift(abs(M)))

title('原调制信号的频谱图')

xlabel('频率f')

subplot(2,1,2)

plot(f,fftshift(abs(DEM)))

title('混频信号通过滤波器后的信号的频谱图')

xlabel('频率f')

disp('按任意键可看到原调制信号和解调器输出信号对比')

pause

figure(4)

subplot(2,1,1)

plot(t,m(1:length(t)))

title('原调制信号的时域图')

xlabel('时间t')

subplot(2,1,2)

plot(t,dem(1:length(t)))

title('解调后信号的时域图')

xlabel('时间t')

子程序

%求傅里叶变换的子函数

function [M,m,df]=fftseq(m,ts,df)

fs=1/ts

if nargin==2

n1=0

else

n1=fs/df

end

n2=length(m)

n=2^(max(nextpow2(n1),nextpow2(n2)))

M=fft(m,n)

m=[m,zeros(1,n-n2)]

df=fs/n

第一种办法就是在盒子自带的应用商店搜索,搜索软件的首字母就可以了,比如“CJDSBFQ”,如果有这个软件,肯定可以找到的。

第二种办法就是使用U盘安装孙毕嫌软件,具体的步骤为:

百度搜索要安装的软件,进入官网下载最新版本apk文件,并拷贝进u盘

打开电视(盒子和电视已连接,电视显示盒子的内容),选择则手应用里的“实用工具”搜索下载“超卓文件数卜管理器”

将U盘连接电视USB接口,打开超卓文件管理器,选择USB存储器

找到要安装的软件apk,打开并确认安装即可

最后就是回到桌面启动软件即可使用


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8192513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存