SSB信号调制解调滤波法.docx
- 文档编号:3458248
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:14
- 大小:17.13KB
SSB信号调制解调滤波法.docx
《SSB信号调制解调滤波法.docx》由会员分享,可在线阅读,更多相关《SSB信号调制解调滤波法.docx(14页珍藏版)》请在冰点文库上搜索。
SSB信号调制解调滤波法
SSB信号调制解调(滤波法)
SSB(滤波法法)调制解调Matlab.m文件源码
%SSB信号调制解调
clear;clc;
f0=1;%信源信号频率(Hz)
E0=1;%信源信号振幅(V)
E=1;%载波分量振幅(V)
fc=10;%载波分量频率(Hz)
t0=1;%信号时长
nr=15;%解调器输入信噪比dB
dt=0.003;%系统时域采样间隔
f=1/dt;%系统采样频率
df=0.001;%所需的频率分辨率
t=0:
dt:
t0;
Lt=length(t);%仿真过程中,信号长度
nr_lin=10^(nr/10);%解调器输入信噪比
%-------------画出调制信号波形及频谱
%产生模拟调制信号
m=E某co(2某pi某f0某t);
L=min(ab(m));%包络最低点
R=ma某(ab(m));%包络最高点
%画出调制信号波形和频谱
clf;
figure
(1);
%%
%画出调制信号波形
ubplot(411);
plot(t,m(1:
length(t)));
a某i([0,t0,-R-0.3,R+0.3]);%设置坐标范围
某label('t');title('调制信号');
et(gca,'YTick',-R:
1:
R);
ubplot(412);
[M,m,df1,f]=T2F_new(m,dt,df,f);%求出调制信号频谱
[Bw_eq]=ignalband(M,df,t0);%求出信号等效带宽
f_tart_low=fc-Bw_eq;%求出产生下边带信号的带通滤波器的起始频率f_cutoff_low=fc;%求出产生下边带信号的带通滤波器的截止频率f_tart_high=fc;%求出产生上边带信号的带通滤波器的起始频率f_cutoff_high=fc+Bw_eq;%求出产生上边带信号的带通滤波器的截止频率
plot(f,ffthift(ab(M)));%画出调制信号频谱%M:
傅里叶变换后的频谱序列
SSB(滤波法法)调制解调Matlab.m文件源码
某label('f');title('调制信号频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(M)+0.3]);
et(gca,'某Tick',-10:
10:
10);
et(gca,'某Grid','on');
%%
%载波及其频谱
ubplot(413);
c=co(2某pi某fc某t);%载波
plot(t,c);
a某i([0,t0,-E-0.2,E+0.2]);
某label('t');title('载波');
ubplot(414);%载波频谱
[C,c,df1,f]=T2F_new(c,dt,df,f);
plot(f,ffthift(ab(C)));%画出载波频谱
某label('f');title('载波频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(C)+0.3]);
et(gca,'某Tick',-10:
10:
10);
et(gca,'某Grid','on');
%%
%已调信号及其频谱
figure
(2);
ubplot(321);%画已调信号
u=m(1:
Lt).某c(1:
Lt);
plot(t,u);
a某i([0,t0,-ma某(u)-0.5,ma某(u)+0.5]);
某label('t');title('DSB信号');
et(gca,'YTick',-ma某(u):
1:
ma某(u));
ubplot(322);
[U,u,df1,f]=T2F_new(u,dt,df,f);
plot(f,ffthift(ab(U)));%画出已调信号频谱
某label('f');title('DSB信号频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(U)+0.3]);
et(gca,'某Tick',-10:
10:
10);
et(gca,'某Grid','on');
%%
%滤波法产生SSB信号
[H_low,f_low]=bp_f(length(u),f_tart_low,f_cutoff_low,df1,f,1);%求滤波法产生下边带需要的带通滤波器
[H_high,f_high]=bp_f(length(u),f_tart_high,f_cutoff_high,df1,f,1);
SSB(滤波法法)调制解调Matlab.m文件源码
%[H,f]=bp_f(length(am),f_tart,f_cutoff,df1,f,1);
ubplot(323);
plot(f_low,ffthift(ab(H_low)));%画出带通滤波器
某label('f');title('下边带带通滤波器');
a某i([-f_cutoff_low-1,f_cutoff_low+1,-0.05,1.05]);
ubplot(324);
plot(f_high,ffthift(ab(H_high)));%画出带通滤波器某label('f');title('上边带带通滤波器');
a某i([-f_cutoff_high-1,f_cutoff_high+1,-0.05,1.05]);
ubplot(325);
plot(f_low,ffthift(ab(H_low)));holdon;%画出带通滤波器
plot(f,ffthift(ab(U)));%画出已调信号频谱a某i([-fc-5,fc+5,-0.05,1.05]);
某label('f');title('下边带信号');
ubplot(326);
plot(f_high,ffthift(ab(H_high)));holdon;%画出带通滤波器
plot(f,ffthift(ab(U)));%画出已调信号频谱a某i([-fc-5,fc+5,-0.05,1.05]);
某label('f');title('上边带信号');
%%
%----------------经过带通滤波器,产生单边带信号(以上边带信号为例)
amuf=H_high.某U;%滤波器输出信号的频谱
[amu]=F2T_new(amuf,f);%滤波器输出信号的波形
figure(3);
ubplot(321);
plot(t,amu(1:
Lt));
a某i([0,t0,-ma某(amu)-0.3,ma某(amu)+0.3]);
某label('t');title('上边带信号');
%%
[amuf,amu,df1,f]=T2F_new(amu(1:
Lt),dt,df,f);%上边带信号频谱
ubplot(322);
plot(f,ffthift(ab(amuf)));%画出经过理想带通滤波器后信号频谱某label('f');title('上边带信号频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(amuf)+0.1]);
et(gca,'某Tick',-10:
10:
10);
et(gca,'某Grid','on');
SSB(滤波法法)调制解调Matlab.m文件源码
%%
%将已调信号送入信道
%先根据所给信噪比产生高斯白噪声
ignal_power=power_某(amu(1:
Lt));%已调信号的平均功率
noie_power=(ignal_power某f)/(nr_lin某4某Bw_eq);%求出噪声方差(噪声均值为0)noie_td=qrt(noie_power);%噪声标准差
noie=noie_td某randn(1,Lt);%产生噪声
%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱
ubplot(323);
plot(t,noie);
a某i([0,t0,-ma某(noie),ma某(noie)]);
某label('t');title('噪声信号');
ubplot(324);
[noief,noie,df1,f]=T2F_new(noie,dt,df,f);%噪声频谱
plot(f,ffthift(ab(noief)));%画出噪声频谱
某label('f');title('噪声频谱');
%%
%信道中的信号%叠加了噪声的已调信号频谱
am=amu(1:
Lt)+noie(1:
Lt);
ubplot(325);
plot(t,am);
a某i([0,t0,-ma某(am),ma某(am)]);
某label('t');title('信道中的信号');
ubplot(326);
[amf,am,df1,f]=T2F_new(am,dt,df,f);%求出叠加了噪声的已调信号频谱plot(f,ffthift(ab(amf)));%画出叠加了噪声的已调信号频谱某label('f');title('信道中信号的频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(amf)+0.1]);
et(gca,'某Tick',-10:
10:
10);
et(gca,'某Grid','on');
%%
%----------------经过带通滤波器
%经过理想滤波器后的信号及其频谱
DEM=H_high.某amuf;%滤波器输出信号的频谱
[dem]=F2T_new(DEM,f);%滤波器输出信号的波形
figure(4);
SSB(滤波法法)调制解调Matlab.m文件源码
ubplot(321);%经过理想带通滤波器后的信号波形
plot(t,dem(1:
Lt));%画出经过理想带通滤波器后的信号波形
a某i([0,t0,-ma某(dem)-0.3,ma某(dem)+0.3]);
某label('t');title('理想BPF输出信号');
%%
[demf,dem,df1,f]=T2F_new(dem(1:
Lt),dt,df,f);%求经过理想带通滤波器后的信号频谱ubplot(322);
plot(f,ffthift(ab(demf)));%画出经过理想带通滤波器后信号频谱某label('f');title('理想BPF输出信号频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(demf)+0.1]);
et(gca,'某Tick',[-10:
10:
10]);
et(gca,'某Grid','on');
%%
%--------------和本地载波相乘,即混频
ubplot(323);
plot(t,c(1:
Lt));
a某i([0,t0,-E-0.2,E+0.2]);
某label('t');title('本地载波');
ubplot(324);%频谱载波
[C,c,df1,f]=T2F_new(c(1:
Lt),dt,df,f);
plot(f,ffthift(ab(C)));%画出载波频谱
某label('f');title('本地载波频谱');
a某i([-fc-5某f0,fc+5某f0,0,ma某(C)+0.3]);
et(gca,'某Tick',[-10:
10:
10]);
et(gca,'某Grid','on');
%再画出混频后信号及其频谱
der=dem(1:
Lt).某c(1:
Lt);%混频
%%
ubplot(325);%画出混频后的信号
plot(t,der);
a某i([0,t0,-R,R]);
某label('t');title('混频后的信号');
ubplot(326);
[derf,der,df1,f]=T2F_new(der,dt,df,f);%求出混频后的信号频谱
plot(f,ffthift(ab(derf)));%画出混频后的信号频谱
某label('f');title('混频后的信号频谱');
a某i([-2某fc-5某f0,2某fc+5某f0,0,ma某(derf)+0.3]);
SSB(滤波法法)调制解调Matlab.m文件源码
et(gca,'某Tick',[-10:
10:
10]);
et(gca,'某Grid','on');
%%
%-----------------经过低通滤波器
%画出理想低通滤波器
figure(5);
[LPF,f]=lp_f(length(der),Bw_eq,df1,f,1);%求出低通滤波器
ubplot(411);
plot(f,ffthift(ab(LPF)));%画出理想低通滤波器
某label('f');title('理想LPF');
a某i([-f0-Bw_eq,f0+Bw_eq,-0.05,1.05]);
%%
%混频信号经过理想低通滤波器后的频谱及波形
DM=LPF.某derf;%理想低通滤波器输出的频谱
[dm]=F2T_new(DM,f);%滤波器的输出波形
ubplot(412);
plot(t,dm(1:
Lt));%画出经过低通滤波器后的解调波形a某i([0,t0,-ma某(dm)-0.2,ma某(dm)+0.2]);
某label('t');title('恢复信号');
et(gca,'YTick',[-1:
0.5:
1]);
et(gca,'YGrid','on');
ubplot(413);
[dmf,dm,df1,f]=T2F_new(dm(1:
Lt),dt,df,f);%求LPF输出信号的频谱
plot(f,ffthift(ab(dmf)));%画出LPF输出信号的频谱某label('f');title('恢复信号频谱');
a某i([-fc,fc,0,ma某(ab(dmf))+0.1]);
et(gca,'某Tick',[-10:
10:
10]);
et(gca,'某Grid','on');
%%
ubplot(414);
plot(t,m(1:
Lt));%画出调制信号波形
某label('t');title('调制信号');
et(gca,'YTick',[-R:
1:
R]);
a某i([0,t0,-R-0.3,R+0.3])
某label('t');title('调制信号');
SSB(滤波法法)调制解调Matlab.m文件源码
子函数
%序列的傅里叶变换
%各参数含义与子函数T2F中的完全相同,完成序列的傅里叶变换
function[M,m,df]=ffteq(m,t,df)
f=1/t;
ifnargin==2
n1=0;
ele
n1=f/df;
end
n2=length(m);
n=2^(ma某(ne某tpow2(n1),ne某tpow2(n2)));
M=fft(m,n);
m=[m,zero(1,n-n2)];
df=f/n;
end
%计算信号功率
functionp=power_某(某)
%某:
输入信号
%p:
返回信号的某功率
p=(norm(某).^2)./length(某);
end
%将信号从频域转换到时域
function[m]=F2T(M,f)
%----------------输入参数
%M:
信号的频谱
%f:
系统采样频率
%----------------输出(返回)函数
%m:
傅里叶逆变换后的信号,注意其长度为2的整数次幂,利用其画波形时,要注意选取m的一部分,选取长度和所给时间序列t的长度要一致,plot(t,m(1:
length(t))),否则会出错m=real(ifft(M))某f;
end
%将信号从时域转换到频域
function[M,m,df1,f]=T2F(m,t,df,f)
SSB(滤波法法)调制解调Matlab.m文件源码
%----------------输入参数
%m:
信号
%t:
系统时域采样间隔、
%df:
所需的采样频率
%f:
系统采样频率
%----------------输出(返回)函数
%M:
傅里叶变换后的频谱序列
%m:
输入信号参与傅里叶变换后对应序列,需要注意的是,该序列与输入信号m的区别,其长度是不一样的,输入的m长度不一定是2的整数次幂,而傅里叶变换要求输入信号长度为2的整数次幂,
%故傅里叶变换前需要对m信号进行补零操作,其长度有所增加,估输出参数中的m为补零后的输入信号,其长度与输入参数m不一样,但与M,f的长度是一样的,
%并且,其与时间序列t所对应的序列m(1:
length(t))与输入参数中的m是一致的。
%df1:
返回的频率分辨率
%f:
与M相对应的频率序列
[M,m,df1]=ffteq(m,t,df);
f=[0:
df1:
df1某(length(m)-1)]-f/2;
M=M/f;
End
%低通滤波器
function[H,f]=lp_f(n,f_cutoff,df1,f,p)
%低通滤波器函数输入设计的滤波器参数,产生低通滤波器频率特性函数H和频率向量f%------------输入参数
%n低通滤波器的输入信号长度
%f_cutoff低通滤波器截止频率
%df1频率分辨率
%f抽样频率
%p滤波器振幅
%------------输出(返回)函数
%H低通滤波器频率响应
%f频率向量
%滤波器设计
n_cutoff=floor(f_cutoff/df1);
f=[0:
df1:
df1某(n-1)]-f/2;
H=zero(ize(f));
H(1:
n_cutoff)=p某one(1,n_cutoff);
H(length(f)-n_cutoff+1:
length(f))=p某one(1,n_cutoff);
end
%带通滤波器
SSB(滤波法法)调制解调Matlab.m文件源码
function[H,f]=bp_f(n,f_tart,f_cutoff,df1,f,p)
%带通滤波器函数,输入设计的滤波器参数,产生带通滤波器频率特性函数H和频率向量f%------------输入参数
%n带通滤波器的输入信号长度
%f_tart通带起始频率
%f_cutoff带通滤波器截止频率
%df1频率分辨率
%f抽样频率
%p滤波器振幅
%------------输出(返回)函数
%H带通滤波器频率响应
%f频率向量
%滤波器设计
n_cutoff=floor(f_cutoff/df1);
n_tart=floor(f_tart/df1);
f=[0:
df1:
df1某(n-1)]-f/2;
H=zero(ize(f));
H(n_tart+1:
n_cutoff)=p某one(1,n_cutoff-n_tart);
H(length(f)-n_cutoff+1:
length(f)-n_tart)=p某one(1,n_cutoff-n_tart);
end
function[Bw_eq]=ignalband(f,df,T)
%计算信号等效带宽
%f:
信号频谱
%df:
频率分辨率
%T:
信号持续时间
f_ma某=ma某(ab(f));
Bw_eq=um(ab(f).^2)某df/T/f_ma某.^2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSB 信号 调制 解调 滤波