在使用MATAB设计带通滤波器时遇到了一个问题
clc;
clear;
close all;
fm=1; %调制信号频率
fc=10; %载波信号频率
ws=2*pi*fm; %调制信号角频率
wc=2*pi*fc; %载波角频率频率
A=2; %增加直流分量
fs=1000; %采样频率
t=0:0.001:pi; %时间段
snr=15; %信噪比
%AM调制
m=cos(ws.*t); %振幅为1的调制信号
c=cos(wc.*t); %载波信号
AM=(A+m).*cos(wc.*t); %AM已调信号
%调制信号、载波,AM信号的时域图形
figure(1);
subplot(221);
plot(t,m);xlabel('t');ylabel('m(t)');title('调制信号');
subplot(222);
plot(t,c);xlabel('t');ylabel('c(t)');title('载波');
subplot(223);
plot(t,AM);xlabel('t');ylabel('AM(t)');title('AM已调信号');
%经过信道后的AM信号
s_AM=awgn(AM,snr,'measured');%加入信噪比为‘snr’的噪声
subplot(224);
plot(t,s_AM);xlabel('t');ylabel('s_AM(t)');title('经过信道的信号');
%傅里叶变化,画出频谱图
df=fs/length(t);%fft的频率分辨率,频点间隔
f=-fs/2:df:fs/2-df;
F_m=fft(m)/fs;
F_AM=fft(AM)/fs;%已调信号AM的傅里叶变换
F_s_AM=fft(s_AM)/fs;%经过信道的信号的傅里叶变=变换
figure(2);
subplot(311);plot(f,fftshift(abs(F_m)));title('M(w)的频谱');
subplot(312);plot(f,fftshift(abs(F_AM)));title('已调信号的频谱图');
subplot(313);plot(f,fftshift(abs(F_s_AM)));title('经过信道的AM频谱图');
%设计带通滤波器,信号经过带通滤波器的时—频图
a=[5,15];%通带范围
b=[0,20];%阻带范围
Wp=a/(fs/2);%带通频率
Ws=b/(fs/2);%阻带频率
Rp=3;%带通频率衰减
Rs=60;%阻带频率衰减
[N,w]=buttord(Wp,Ws,Rp,Rs);%计算巴特沃斯低通滤波器阶数 N,3db截止频率 w
[B,A]=butter(N,w,'s');%计算巴特沃斯模拟低通滤波器系统函数,s表示模拟滤波器
B_s_AM=filtfilt(B,A,s_AM);%信号经过带通滤波器
figure(3);
subplot(211);plot(t,s_AM);xlabel('t');ylabel('s_AM(t)');title('经过信道的信号');
subplot(212);plot(t,B_s_AM);xlabel('t');ylabel('B_s_AM(t)');title('经过带通滤波器的信号');
figure(4)
F_B_s_AM=fft(B_s_AM)/fs;
subplot(211);plot(f,fftshift(abs(F_s_AM)));title('经过信道的AM频谱图');
subplot(212);plot(f,fftshift(abs(F_B_s_AM)));title('经过信号经过带通滤波器后的频谱图');
%相干解调
s_t=B_s_AM.*c; %接收信号乘以载波信号
%设计LPF低通滤波器
Wt=1/(fs/2);%带通频率
Wz=10/(fs/2);%阻带频率
Rt=3;%带通频带衰减
Rz=20;%阻带频带衰减
[N1,w1]=buttord(Wt,Wz,Rt,Rz);
[B,A]=butter(N1,w1);
Out_m=filtfilt(B,A,s_t); %经过相干解调后输出的信号
figure(4)
subplot(211);title('相干解调输出信号的时域图');
F_Out_m=fft(Out_m)/fs;
subplot(212);plot(f,fftshift(abs(F_Out_m)));title('相干解调后的频谱图');