要求把频率150K的正弦信号移相90度,幅频特性为1,采样率每周期12点。
请楼下看清楚问题,我知道希尔伯特变换是怎么一回事,我要的是实现这一滤波器的详细具体方法。
如何用MATLAB设计希尔伯特滤波器
答案:3 悬赏:0 手机版
解决时间 2021-02-20 12:57
- 提问者网友:疯子也有疯子的情调
- 2021-02-20 06:26
最佳答案
- 五星知识达人网友:千夜
- 2021-02-20 07:41
希尔伯特滤波器是宽带移相全通网络,每个正频率分量都移相-π/2。
全部回答
- 1楼网友:白昼之月
- 2021-02-20 09:17
n = 0:40;
a = 2;b = -3;
x1 = cos(2*pi*0.1*n);
x2 = cos(2*pi*0.4*n);
x = a*x1 + b*x2;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0];
y1 = filter(num,den,x1,ic); % compute the output y1[n]
y2 = filter(num,den,x2,ic); % compute the output y2[n]
y = filter(num,den,x,ic); % compute the output y[n]
yt = a*y1 + b*y2;
d = y - yt;
subplot(3,1,1)
stem(n,y);
ylabel('amplitude');
title('output due to weighted input: a \cdot x_{1}[n] + b \cdot x_{2}[n]');
subplot(3,1,2)
stem(n,yt);
ylabel('amplitude');
title('weighted output: a \cdot y_{1}[n] + b \cdot y_{2}[n]');
subplot(3,1,3)
stem(n,d);
xlabel('time index n');ylabel('amplitude');
title('difference signal');
- 2楼网友:神的生死簿
- 2021-02-20 08:47
clc;
clear all;
f=[400/24000 23600/24000];
a=[1 1];
n=198;
b=firpm(n,f,a,'hilbert');
freqz(b,1,10000,48000);
这是我做实验用的,移相-90度。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯