matlab绘制五种常见的小波函数的时域及频域波形

clc,close all,clear all;
% 第一种:haar小波函数
% 返回2^ITFR点上的尺度变换函数(phi)和小波函数(psi).其中ITFR是指迭代次数
[phi,gll,xval]=wavefun('haar',20);
figure
subplot(211)
plot(xval,gll,'r');
title('haar小波函数时域波形')
xlabel('时间t')
g12=abs(fft(gll));
subplot(212);
plot(g12,'g');
title('haar小波函数幅频波形')
xlabel('频率f')

% 第二种dbN小波
% 返回2^ITFR点上的尺度变换函数(phi)和小波函数(psi).其中ITFR是指迭代次数
[phi,g21,xval]=wavefun('db4',20);
figure
subplot(211)
plot(xval,g21,'r');
title('dbN小波函数时域波形')
xlabel('时间t')
g22=abs(fft(g21));
subplot(212);
plot(g22,'g');
title('dbN小波函数幅频波形')
xlabel('频率f')

% 第三种Mexican hat小波函数
d=-8,h=8,n=200;
[g31,xval]=mexihat(d,h,n);
figure
subplot(211)
plot(xval,g31,'r');
title('mexihat小波函数时域波形')
xlabel('时间t')
g32=abs(fft(g31));
subplot(212);
plot(g32,'g');
title('mexihat小波函数幅频波形')
xlabel('频率f')

% 第四种 morlet小波函数
d=-8,h=8,n=200;
[g41,xval]=morlet(d,h,n);
figure
subplot(211)
plot(xval,g41,'r');
title('morlet小波函数时域波形')
xlabel('时间t')
g42=abs(fft(g41));
subplot(212);
plot(g42,'g');
title('morlet小波函数幅频波形')
xlabel('频率f')

% 第五种 Meyer小波函数
d=-8,h=8,n=128;
[g41,xval]=morlet(d,h,n);
figure
subplot(211)
plot(xval,g41,'r');
title('meyer小波函数时域波形')
xlabel('时间t')
g42=abs(fft(g41));
subplot(212);
plot(g42,'g');
title('meyer小波函数幅频波形')
xlabel('频率f')





  • 14
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
好的,我会尽力回答你的问题。首先需要知道你需要实现的FIR滤波器的参数,比如采样率、通带和阻带的频率、滤波器的截止频率等。在这里,我将假设你已经知道这些参数。 接下来,我们可以使用MATLAB或Python等工具来实现FIR滤波器。下面是一个使用MATLAB实现FIR滤波器的例子: ```matlab % 设计一个FIR滤波器 fs = 8000; % 采样率 fpass = 1000; % 通带频率 fstop = 2000; % 阻带频率 Rp = 1; % 通带最大衰减量 Rs = 60; % 阻带最小衰减量 fNyq = fs/2; % Nyquist频率 Wp = fpass/fNyq; % 通带归一化频率 Ws = fstop/fNyq; % 阻带归一化频率 % 利用remez函数设计FIR滤波器 N = 100; % 滤波器阶数 h = remez(N, [0 Wp Ws 1], [1 1 0 0], [Rp Rs]); % 读取音频文件 [x, fs] = audioread('test.wav'); % 使用FIR滤波器对音频进行滤波 y = filter(h, 1, x); % 绘制滤波后的时域波形 t = (0:length(x)-1)/fs; subplot(2,1,1); plot(t,x); title('原始音频'); xlabel('时间(秒)'); ylabel('幅度'); subplot(2,1,2); plot(t,y); title('滤波后音频'); xlabel('时间(秒)'); ylabel('幅度'); % 绘制滤波后的频域波形 NFFT = 2^nextpow2(length(x)); X = fft(x, NFFT)/length(x); Y = fft(y, NFFT)/length(y); f = fs/2*linspace(0,1,NFFT/2+1); subplot(2,1,1); plot(f,2*abs(X(1:NFFT/2+1))); title('原始音频'); xlabel('频率(Hz)'); ylabel('幅度'); subplot(2,1,2); plot(f,2*abs(Y(1:NFFT/2+1))); title('滤波后音频'); xlabel('频率(Hz)'); ylabel('幅度'); ``` 在这个例子中,我们设计了一个通带频率为1kHz,阻带频率为2kHz的FIR滤波器,滤波器的阶数为100。我们读取了一个名为“test.wav”的音频文件,并使用FIR滤波器对音频进行滤波。最后,我们绘制了滤波后的时域波形频域波形。你可以根据自己的需求修改这个例子中的参数。 希望这个例子可以帮助你实现一个FIR滤波器,并绘制滤波后的时域波形频域波形。如果你有任何问题,请随时问我。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值