如何从离散时间脉冲响应向量到频谱绘图

53意见(过去30天)
约瑟夫
约瑟夫 2013年10月30日
你好,
我是Matlab中的DSP概念和信号处理非常新的,所以请轻松放在我身上。我有以下代码,我已开始工作是RLC过滤器的BZT。我想拿走我的脉冲响应y [n]的dft,并最终用幅度绘制y(f)。我知道我可以使用fft()和plot()函数。
我已经看到了使用Linspace / logspace向量的例子,我需要在能够绘制这个东西之前定义,以及一些这样的事情是nffts(以便越来越快的fft?),但我并不真正肯定如何放置它在这里一起。
任何帮助/洞察力都会非常感激。
谢谢乔。
代码:
r = 0.1;%电阻器
L = 0.0016;%电感器
c = 0.0016;%电容器
RESF = 1 / SQRT(L * C);%谐振频率
sampRate = 44100;%采样率(Hz)
T = 1 / sampRate;%样本时期
PREWARPF =(2 / T)* TAN(RESF * T / 2);%prewarp factor
a =(2 / t)* r * c;
b =(2 /(t * prewarpf))^ 2;
e0 = / (a + b + 1);
e1 = (2 * 2) / (a + b + 1);
E2 =(1 + B-A)/(A + B + 1);
N = 2048;丝锥百分数
x =零(1,n);%输入向量
x(5)= 1;Delta的%脉冲(N-5)
y =零(1,n);%输出矢量
对于n = 5:n
Y(n)= e0 * x(n) - e0 * x(n-2) - e1 * y(n-1) - e2 * y(n-2);
结尾
1条评论
约瑟夫
约瑟夫 2013年11月3日
如果有人能够回答如何根据我代码中已经定义的参数定义频率向量,那将对我非常有用。洞察力和代码一样好。

登录评论。

接受答案

韦恩王
韦恩王 2013年11月3日
编辑:韦恩王 2013年11月3日
由于您具有在44.1 kHz采样的数据采样的离散时间序列,因此频率矢量将从-22050Hz运行到22050Hz,用于双面频谱,或仅为单面为0到22050。
你有信号处理工具箱吗?如果是这样,则使用FREQZ()与差异方程的系数。从这一行:
Y(n)= e0 * x(n) - e0 * x(n-2) - e1 * y(n-1) - e2 * y(n-2);
您的区别方程具有以下形式作为合理传输功能。
A = [1 e1 e2];
B = [e0 -e0];
所以频率响应是
[H F] = freqz (B, A, [], 44100);
绘图(F,20 * log10(ABS(H)));
包含(“赫兹”);
从上面可以看出,响应是低通的。
2评论
阿卜杜拉·阿什法拉夫
@Wayne王 我只是谢谢你!它对我的作业帮助了我,所以再次,谢谢!!
我有另一个问题,你能告诉我这个表达中的方括号表示法是否意味着什么?
[H F] = freqz (B, A, [], 44100);

登录评论。

更多答案(0)

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

被某某人翻译