用Matlab画出几种窗函数的频率响应

想要画窗函数的频率响应。如下图这种。给出matlab程序,感谢!
2025-03-20 05:24:37
推荐回答(5个)
回答1:

常见的窗口有

矩形窗 boxcar()
三角窗 triang()
汉宁窗 hanning()
海明窗 hamming()
布拉克曼窗 blackman()
恺撒窗kaiser(n,beta)


绘制频率响应曲线有可以用freqz()函数,比如:

n=50;
figure; freqz(boxcar(n),1);
figure; freqz(hanning(n),1);
figure; freqz(hamming(n),1);
figure; freqz(blackman(n),1);
figure; freqz(kaiser(n,2.5),1);



或者直接用vwtool()工具,例如:

w = kaiser(200,2.5);
wvtool(w)

回答2:

我举个例子好了。 矩形窗的窗函数是w=boxcar(n); 其中n是窗长度。
输入这三行代码就可以看到矩形窗的频率响应了。
n=100;
w=boxcar(n);
fvtool(w);
如果你想看其他窗函数的频率响应,把boxcar换掉就可以了。
(1)矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度 n 产生一个矩形窗 w。
(2)三角窗(Triangular Window) 调用格式:w=triang(n),根据长度 n 产生一个三角窗 w。
(3)汉宁窗(Hanning Window) 调用格式:w=hanning(n),根据长度 n 产生一个汉宁窗 w。
(4)海明窗(Hamming Window) 调用格式:w=hamming(n),根据长度 n 产生一个海明窗 w。
(5)布拉克曼窗(Blackman Window) 调用格式:w=blackman(n),根据长度 n 产生一个布拉克曼窗 w。
(6)恺撒窗(Kaiser Window) 调用格式:w=kaiser(n,beta),根据长度 n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。
参考的函数就是这几个

回答3:

double是matalb里面强制将数据类型转化为双精度浮点数的函数

而从文件读取的图片,每个像素一般用8位,或者24位二进制数表示
读进来的图像 I=imread('文件名');
一般是mxn 的uint8类型矩阵或者是mxnx3 的uint8类型的矩阵
其中m,n是图像的像素大小
如果是8位数据也就是256色的图片,得到2维矩阵,
用uint8也就是无符号整形数据表示像素的值
如果是8位数据也就是RGB真彩色图片,得到3维矩阵,
第三维用3层uint8也就是无符号整形数据表示像素的RGB值

而matlab里面主要用于运算的数据类型是双精度浮点数,也就是double
double(I)就将图像数据的类型强制转换为double型,便于后续的处理计算

回答4:

是这个吗???需要的话可以把文件发给你。。。

回答5:

采用函数freqz
H = FREQZ(B,A,W) returns the frequency response at frequencies
designated in vector W, in radians/sample (normally between 0 and pi).
B为分子
A为分母
W为频率区间
至于函数,自己去翻书看吧!