用【Matlab】设计一个去除30Hz信号中50Hz的信号的小程序。。

用【Matlab】设计一个去除30Hz信号中50Hz的信号的小程序。。,第1张

W=fft(w,N);

thisfilter(1:17)=001;

thisfilter(18:499)=1;

thisfilter(500:N)=001;%%%W对应的50Hz的峰值最大,找到对应的两个最大峰值的位置

thispy3=thisfilterW;%滤波

完整的程序

%写上标题

%设计低滤波器

[N,Wc]=buttord()

%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc

[a,b]=butter(N,Wc); %设计Butterworth低通滤波器

[h,f]=freqz(); %求数字低通滤波器的频率响应

figure(2); % 打开窗口2

subplot(221); %图形显示分割窗口

plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图

title(巴氏低通滤波器'');

grid; %绘制带网格的图像

sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数

subplot(222);

plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形

xlabel('时间 (seconds)');

ylabel('时间按幅度');

SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换

w= %新信号角频率

subplot(223);

plot()); %绘制叠加函数S经过低通滤波器以后的频谱图

title('低通滤波后的频谱图');

%设计高通滤波器

[N,Wc]=buttord()

%估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc

[a,b]=butter(N,Wc,'high'); %设计Butterworth高通滤波器

[h,f]=freqz(); %求数字高通滤波器的频率响应

figure(3);

subplot(221);

plot()); %绘制Butterworth高通滤波器的幅频响应图

title('巴氏高通滤波器');

grid; %绘制带网格的图像

sf=filter(); %叠加函数S经过高通滤波器以后的新函数

subplot(222);

plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形

xlabel('Time(seconds)');

ylabel('Time waveform');

w; %新信号角频率

subplot(223);

plot()); %绘制叠加函数S经过高通滤波器以后的频谱图

title('高通滤波后的频谱图');

%设计带通滤波器

[N,Wc]=buttord([)

%估算得到Butterworth带通滤波器的最小阶数N和3dB截止频率Wc

[a,b]=butter(N,Wc); %设计Butterworth带通滤波器

[h,f]=freqz(); %求数字带通滤波器的频率响应

figure(4);

subplot(221);

plot(f,abs(h)); %绘制Butterworth带通滤波器的幅频响应图

title('butter bandpass filter');

grid; %绘制带网格的图像

sf=filter(a,b,s); %叠加函数S经过带通滤波器以后的新函数

subplot(222);

plot(t,sf); %绘制叠加函数S经过带通滤波器以后的时域图形

xlabel('Time(seconds)');

ylabel('Time waveform');

SF=fft(); %对叠加函数S经过带通滤波器以后的新函数进行256点的基—2快速傅立叶变换

w=( %新信号角频率

subplot(223);

plot(')); %绘制叠加函数S经过带通滤波器以后的频谱图

title('带通滤波后的频谱图');

你这个程序是没有问题的,我在MATLAB上运行了,结果正确,你说的y与c的卷积?是x与c的卷积吧,卷积是不会要求两者的长度是一样的,任何两个不同长度的都可以用的,最后的长度是两者长度相加减一。

1 Matlab本身没有数据采集功能,需要借助数据采集卡(硬件)和更低层的软件(或驱动)

2 Matlab本身不太适合高速实时的数据处理,所以要看你的电压变化有多快才能决定能否用Matlab处理。

问题补充:

我又数据采集卡,而且也装好了驱动,但不我知道应该用MATLAB的哪个toolbox

答:你的数据采集系统还应当提供一个可编程(控制)接口,例如某个动态连接库,其中含有可以被其他程序(Matlab)调用的用来从采集卡往该程序(Matlab)传递数据或参数的控制函数。如此方可被其他程序(Matlab)使用。但这当中还是要考虑Matlab的实时性问题。

以上就是关于用【Matlab】设计一个去除30Hz信号中50Hz的信号的小程序。。全部的内容,包括:用【Matlab】设计一个去除30Hz信号中50Hz的信号的小程序。。、关于用MATLAB设计对信号进行频谱分析和滤波处理的程序、用MATLAB来设计信号与系统的一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10094986.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存