用matlab设计滤波器某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱.

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 15:02:02
用matlab设计滤波器某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通

用matlab设计滤波器某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱.
用matlab设计滤波器
某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱.

用matlab设计滤波器某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱.
这个信号的频率分量分别为30、150和600Hz,因此可分别设计一个低通、带通和高通的滤波器来提取.以FIR滤波器为例,程序如下:
clear;fs=2000;t=(1:1000)/fs;
x=10*cos(2*pi*30*t)+cos(2*pi*150*t)+5*cos(2*pi*600*t);
L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);
figure(1);subplot(2,1,1);plot(t,x);
grid on;title('滤波前信号x');xlabel('时间/s');% 原始信号
subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw));% 查看信号频谱
grid on;title('滤波前信号频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');
%% x_1=10*cos(2*pi*30*t)
Ap=1;As=60;% 定义通带及阻带衰减
dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量
mags=[1,0];% 低通
fcuts=[60,100];% 边界频率
[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数
hh1=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计
x_1=filter(hh1,1,x);% 滤波
x_1(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分
L=length(x_1);N=2^(nextpow2(L));Hw_1=fft(x_1,N);
figure(2);subplot(2,1,1);plot(t(1:L),x_1);
grid on;title('x_1=10*cos(2*pi*30*t)');xlabel('时间/s');
subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_1));% 查看信号频谱
grid on;title('滤波后信号x_1频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');
%% x_2=cos(2*pi*150*t)
Ap=1;As=60;% 定义通带及阻带衰减
dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];% 计算偏移量
mags=[0,1,0];% 带通
fcuts=[80,120,180,220];% 边界频率
[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数
hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计
x_2=filter(hh2,1,x);% 滤波
x_2(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分
L=length(x_2);N=2^(nextpow2(L));Hw_2=fft(x_2,N);
figure(3);subplot(2,1,1);plot(t(1:L),x_2);
grid on;title('x_2=cos(2*pi*150*t)');xlabel('时间/s');
subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_2));% 查看信号频谱
grid on;title('滤波后信号x_2频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');
%% x_3=5*cos(2*pi*600*t)
Ap=1;As=60;% 定义通带及阻带衰减
dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1)];% 计算偏移量
mags=[0,1];% 高通
fcuts=[500,550];% 边界频率
[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);% 估算FIR滤波器阶数
hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));% FIR滤波器设计
x_3=filter(hh2,1,x);% 滤波
x_3(1:ceil(N/2))=[];% 群延时N/2,删除无用信号部分
L=length(x_3);N=2^(nextpow2(L));Hw_3=fft(x_3,N);
figure(4);subplot(2,1,1);plot(t(1:L),x_3);
grid on;title('x_3=5*cos(2*pi*600*t)');xlabel('时间/s');
subplot(2,1,2);plot((0:N-1)*fs/L,abs(Hw_3));% 查看信号频谱
grid on;title('滤波后信号x_3频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');

用matlab设计滤波器某合成信号,表达式如下:f=10cos(2pi*30t)+cos(2pi*150t)+5cos(2pi*600t),请设计三个滤波器,分别提取出信号中各频率分量,并分别绘制出通过这三个滤波器后信号的时域波形和频谱. MATLAB中FIR滤波器如何设计 数字巴特沃斯滤波器设计这是《信号与系统》课上的题目,原题如下:试设计一个数字低通滤波器,不仅具有模拟巴特沃斯滤波器的幅度响应,而且具有线性相位响应.用Matlab编程计算具有巴特沃 用双线性法则设计的低通滤波器为什么不能滤掉高频信号?用matlab设计的,原型是butterworth滤波器,程序如下clcclear allb=[0.2932,0.5865,0.2932]a=[1,0,0.1716]t=0:0.1:10;x=sin(0.5*pi*t)+sin(2*pi*t);x1=sin(0.5*pi*t)x2=sin(2 matlab中用fdatool设计的滤波器如何使用我现在有个txt格式的数据,想用由fdatool工具设计的FIR滤波器对它进行滤波,请问该如何操作~我的意思是能够得到滤波完了以后的波形~能够把原始信号和滤 怎么用ADS设计滤波器? 如何利用matlab合成周期方波信号 Matlab里面模拟滤波器函数怎么使用啊?我用buttord和buffer得到了拉普拉斯变换的分子分母多项式系数b,a.那接下去我想用这个滤波器去滤波处理一个信号,请问怎么编写程序啊?我想设计一个模拟 基于MATLAB的巴特沃斯低通滤波器的设计.求代码? FIR滤波器设计参数:高通滤波器:fc=4800Hz,fp=5000Hz,Ac=100dB,Ap=1dB要求:用窗函数设计法设计,形成FIR滤波器,写出MATLAB的滤波器设计程序,画出各自滤波器的幅频特性和相频特性 在MATLAB环境下仿真巴特沃斯低通滤波器已知某滤波器的技术指标为:通带截止频率,通带允许最大衰减,阻带下限频率,阻带允许最小衰减,设计满足各个条件的巴特沃斯低通滤波器 ,并设计仿真 用MATLAB的FDATool设计的滤波器怎么使用啊!我已经用FDATool设计了一个滤波器,但是设计好以后怎么使用它啊!在程序里调用还是直接在设计界面进行滤波啊! 用LM324设计二阶巴特沃斯低通滤波器,包括电路图或者用别的运放设计也行是做硬件的,信号通过滤波然后放大再进行模数转换 请教一下matlab的fir滤波器设计,已知频率响应的表达式,要如何编写代码设计滤波器呢? 信号滤波器原理 用matlab画频谱图问题要求用matlab画出采样信号的频谱图,被采样信号是理想低通滤波器,其冲激响应好像是y=sinc(pi*t/T),T随便,采样频率随便,就是画出理想低通滤波器的采样信号频谱,请写出程序 我在matlab里接受频率为2K,三个周期的正弦信号,应该用什么滤波器滤除空气噪声? matlab 加 高频噪声给原始语音信号加入高频噪声,如5500Hz的随机噪声.观察加入噪声后的时域波形变化及频谱变化.设计合适的滤波器滤除高频噪声.