SSB信号调制解调滤波法Word格式.docx
《SSB信号调制解调滤波法Word格式.docx》由会员分享,可在线阅读,更多相关《SSB信号调制解调滤波法Word格式.docx(14页珍藏版)》请在冰点文库上搜索。
![SSB信号调制解调滤波法Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/b71594c7-e97a-45bc-b836-b0ec1bc5ef6c/b71594c7-e97a-45bc-b836-b0ec1bc5ef6c1.gif)
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:
傅里叶变换后的频谱序列
f'
调制信号频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(M)+0.3]);
某Tick'
-10:
10:
10);
某Grid'
'
on'
%载波及其频谱
ubplot(413);
c=co(2某pi某fc某t);
%载波
plot(t,c);
a某i([0,t0,-E-0.2,E+0.2]);
载波'
ubplot(414);
%载波频谱
[C,c,df1,f]=T2F_new(c,dt,df,f);
plot(f,ffthift(ab(C)));
%画出载波频谱
载波频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(C)+0.3]);
%已调信号及其频谱
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]);
DSB信号'
-ma某(u):
ma某(u));
ubplot(322);
[U,u,df1,f]=T2F_new(u,dt,df,f);
plot(f,ffthift(ab(U)));
%画出已调信号频谱
DSB信号频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(U)+0.3]);
%滤波法产生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);
%[H,f]=bp_f(length(am),f_tart,f_cutoff,df1,f,1);
ubplot(323);
plot(f_low,ffthift(ab(H_low)));
%画出带通滤波器
下边带带通滤波器'
a某i([-f_cutoff_low-1,f_cutoff_low+1,-0.05,1.05]);
ubplot(324);
plot(f_high,ffthift(ab(H_high)));
%画出带通滤波器某label('
上边带带通滤波器'
a某i([-f_cutoff_high-1,f_cutoff_high+1,-0.05,1.05]);
ubplot(325);
holdon;
%画出已调信号频谱a某i([-fc-5,fc+5,-0.05,1.05]);
下边带信号'
ubplot(326);
上边带信号'
%----------------经过带通滤波器,产生单边带信号(以上边带信号为例)
amuf=H_high.某U;
%滤波器输出信号的频谱
[amu]=F2T_new(amuf,f);
%滤波器输出信号的波形
figure(3);
plot(t,amu(1:
Lt));
a某i([0,t0,-ma某(amu)-0.3,ma某(amu)+0.3]);
[amuf,amu,df1,f]=T2F_new(amu(1:
Lt),dt,df,f);
%上边带信号频谱
plot(f,ffthift(ab(amuf)));
%画出经过理想带通滤波器后信号频谱某label('
上边带信号频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(amuf)+0.1]);
%将已调信号送入信道
%先根据所给信噪比产生高斯白噪声
ignal_power=power_某(amu(1:
%已调信号的平均功率
noie_power=(ignal_power某f)/(nr_lin某4某Bw_eq);
%求出噪声方差(噪声均值为0)noie_td=qrt(noie_power);
%噪声标准差
noie=noie_td某randn(1,Lt);
%产生噪声
%画出信道高斯白噪声波形及频谱,此时,噪声已实现,为确知信号,可求其频谱
plot(t,noie);
a某i([0,t0,-ma某(noie),ma某(noie)]);
噪声信号'
[noief,noie,df1,f]=T2F_new(noie,dt,df,f);
%噪声频谱
plot(f,ffthift(ab(noief)));
%画出噪声频谱
噪声频谱'
%信道中的信号%叠加了噪声的已调信号频谱
am=amu(1:
Lt)+noie(1:
plot(t,am);
a某i([0,t0,-ma某(am),ma某(am)]);
信道中的信号'
[amf,am,df1,f]=T2F_new(am,dt,df,f);
%求出叠加了噪声的已调信号频谱plot(f,ffthift(ab(amf)));
%画出叠加了噪声的已调信号频谱某label('
信道中信号的频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(amf)+0.1]);
%----------------经过带通滤波器
%经过理想滤波器后的信号及其频谱
DEM=H_high.某amuf;
[dem]=F2T_new(DEM,f);
figure(4);
%经过理想带通滤波器后的信号波形
plot(t,dem(1:
%画出经过理想带通滤波器后的信号波形
a某i([0,t0,-ma某(dem)-0.3,ma某(dem)+0.3]);
理想BPF输出信号'
[demf,dem,df1,f]=T2F_new(dem(1:
%求经过理想带通滤波器后的信号频谱ubplot(322);
plot(f,ffthift(ab(demf)));
理想BPF输出信号频谱'
a某i([-fc-5某f0,fc+5某f0,0,ma某(demf)+0.1]);
[-10:
10]);
%--------------和本地载波相乘,即混频
plot(t,c(1:
本地载波'
%频谱载波
[C,c,df1,f]=T2F_new(c(1:
本地载波频谱'
%再画出混频后信号及其频谱
der=dem(1:
%混频
%画出混频后的信号
plot(t,der);
a某i([0,t0,-R,R]);
混频后的信号'
[derf,der,df1,f]=T2F_new(der,dt,df,f);
%求出混频后的信号频谱
plot(f,ffthift(ab(derf)));
%画出混频后的信号频谱
混频后的信号频谱'
a某i([-2某fc-5某f0,2某fc+5某f0,0,ma某(derf)+0.3]);
%-----------------经过低通滤波器
%画出理想低通滤波器
figure(5);
[LPF,f]=lp_f(length(der),Bw_eq,df1,f,1);
%求出低通滤波器
plot(f,ffthift(ab(LPF)));
理想LPF'
a某i([-f0-Bw_eq,f0+Bw_eq,-0.05,1.05]);
%混频信号经过理想低通滤波器后的频谱及波形
DM=LPF.某derf;
%理想低通滤波器输出的频谱
[dm]=F2T_new(DM,f);
%滤波器的输出波形
plot(t,dm(1:
%画出经过低通滤波器后的解调波形a某i([0,t0,-ma某(dm)-0.2,ma某(dm)+0.2]);
恢复信号'
[-1:
0.5:
1]);
YGrid'
[dmf,dm,df1,f]=T2F_new(dm(1:
%求LPF输出信号的频谱
plot(f,ffthift(ab(dmf)));
%画出LPF输出信号的频谱某label('
恢复信号频谱'
a某i([-fc,fc,0,ma某(ab(dmf))+0.1]);
[-R:
R]);
a某i([0,t0,-R-0.3,R+0.3])
子函数
%序列的傅里叶变换
%各参数含义与子函数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;
%计算信号功率
functionp=power_某(某)
%某:
输入信号
%p:
返回信号的某功率
p=(norm(某).^2)./length(某);
%将信号从频域转换到时域
function[m]=F2T(M,f)
%----------------输入参数
%M:
信号的频谱
%f:
系统采样频率
%----------------输出(返回)函数
%m:
傅里叶逆变换后的信号,注意其长度为2的整数次幂,利用其画波形时,要注意选取m的一部分,选取长度和所给时间序列t的长度要一致,plot(t,m(1:
length(t))),否则会出错m=real(ifft(M))某f;
%将信号从时域转换到频域
function[M,m,df1,f]=T2F(m,t,df,f)
%m:
信号
%t:
系统时域采样间隔、
%df:
所需的采样频率
输入信号参与傅里叶变换后对应序列,需要注意的是,该序列与输入信号m的区别,其长度是不一样的,输入的m长度不一定是2的整数次幂,而傅里叶变换要求输入信号长度为2的整数次幂,
%故傅里叶变换前需要对m信号进行补零操作,其长度有所增加,估输出参数中的m为补零后的输入信号,其长度与输入参数m不一样,但与M,f的长度是一样的,
%并且,其与时间序列t所对应的序列m(1:
length(t))与输入参数中的m是一致的。
%df1:
返回的频率分辨率
与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);
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);
%带通滤波器
function[H,f]=bp_f(n,f_tart,f_cutoff,df1,f,p)
%带通滤波器函数,输入设计的滤波器参数,产生带通滤波器频率特性函数H和频率向量f%------------输入参数
%n带通滤波器的输入信号长度
%f_tart通带起始频率
%f_cutoff带通滤波器截止频率
%H带通滤波器频率响应
n_tart=floor(f_tart/df1);
H(n_tart+1:
n_cutoff)=p某one(1,n_cutoff-n_tart);
length(f)-n_tart)=p某one(1,n_cutoff-n_tart);
function[Bw_eq]=ignalband(f,df,T)
%计算信号等效带宽
信号频谱
频率分辨率
%T:
信号持续时间
f_ma某=ma某(ab(f));
Bw_eq=um(ab(f).^2)某df/T/f_ma某.^2;