📄 fig611.m
字号:
clear all;close all;
N=2000;T=0.001;Tp=N*T;
t=0:T:(N-1)*T;
k=0:N-1;
f=k/Tp;
fsa=1/T;fc=fsa/10;f0=fc/10;
mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0
ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fc
xt=mt.*ct; %相乘产生单频调制信号xt
nt=2*rand(1,N)-1; %产生随机噪声nt
%===============================
fp=150; fs=300; % 输入给定指标
Rp=1;As=60;Fs=fsa;
fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,dev
dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];
[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数
hn=remez(n,fo,mo,W); % 调用remez函数进行设计,用于滤除噪声nt中的低频成分
%================================
yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声
%============================
st=xt+yt; %噪声加信号
fst=fft(st,N);
subplot(2,1,1)
plot(t,st);grid;xlabel('t/s');ylabel('x(t)');
axis([0,Tp/8,min(st),max(st)]);title('(a) 信号加噪声波形')
subplot(2,1,2)
plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')
axis([0,Fs/2,0,1.2]);
xlabel('f/Hz');ylabel('幅度')
%==============================
fp=150; fs=200; % 输入给定指标
Rp=0.2;As=60;Fs=fsa;
fb=[fp,fs];m=[1,0]; % 计算remezord函数所需参数f,m,dev
dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)];
[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数
hn=remez(n,fo,mo,W); % 调用remez函数进行设计
fhw=fft(hn,N); % 求设计出的滤波器频率特性
figure(2)
subplot(2,1,1)
plot(f,abs(fhw));grid;title('(c) 低通滤波器幅频特性')
axis([0,Fs/2,0,max(abs(fhw))+0.5]);
xlabel('f/Hz');ylabel('幅度')
%===============================
zt=filter(hn,1,st);
subplot(2,1,2)
plot(t,zt);grid;
axis([0,Tp/8,-1,1]);xlabel('t/s');ylabel('s(t)');
title('(d) 滤除噪声后的信号波形')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -