《DSP using MATLAB》Problem 2.18

1、代码:
function [y, H] = conv_tp(h, x)
% Linear Convolution using Toeplitz Matrix
% ----------------------------------------------------
% [y,H] = conv_tp(h, x)
% y = output sequence in column vector form
% H = Toeplitz matrix corresponding to sequence h so that y = Hx
% h = Impulse response sequence in length(h)*1 column vector form
% x = input sequence in length(x)*1 column vector form
%
for i = 1:length(h)
c(i) = h(i);
end for j=(length(h)+1):(length(x)+length(h)-1)
c(j)=0;
end r(1)=h(1); for k=2:length(x)
r(k)=0;
end H=toeplitz(c,r)
y=H*x;
end
2、用1小题中的函数验证习题2.17,代码如下:
%% ------------------------------------------------------------------------
%% Output Info about this m-file
fprintf('\n***********************************************************\n');
fprintf(' <DSP using MATLAB> Problem 2.18 \n\n'); banner();
%% ------------------------------------------------------------------------ nx1 = [0:4]; x1 = [1, 2, 3, 4, 5];
nh1 = [0:3]; h1 = [6, 7, 8, 9]; [y1, H] = conv_tp(h1', x1'); y1
运行结果:

上图中H就是Toeplitz拓普利兹矩阵,可以看出除第一行、第一列外,每个元素都和其左上方元素相等。
每一行向量就是系统的脉冲响应序列的线性移位,h(n-k),其中n=0,1,2,.....,length(h)-1。
实际中,将序列h(n)摺叠,依次移位,得到Toeplitz矩阵。第一列就是h(n)加零补齐长度。
《DSP using MATLAB》Problem 2.18的更多相关文章
- 《DSP using MATLAB》Problem 6.18
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- 《DSP using MATLAB》Problem 5.18
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...
- 《DSP using MATLAB》Problem 4.18
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 《DSP using MATLAB》Problem 3.18
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 《DSP using MATLAB》Problem 8.18
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- 《DSP using MATLAB》Problem 5.15
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- 《DSP using MATLAB》Problem 4.15
只会做前两个, 代码: %% ---------------------------------------------------------------------------- %% Outpu ...
- 《DSP using MATLAB》Problem 7.27
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- 《DSP using MATLAB》Problem 7.26
注意:高通的线性相位FIR滤波器,不能是第2类,所以其长度必须为奇数.这里取M=31,过渡带里采样值抄书上的. 代码: %% +++++++++++++++++++++++++++++++++++++ ...
随机推荐
- 学号20155308 2016-2017-2 《Java程序设计》第7周学习总结
学号20155308 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 使用Optional代替null 标准API的函数接口 API 功能 Cons ...
- supervisor初试
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...
- # 20145106 《Java程序设计》第2周学习总结
教材学习内容总结 感觉这本书的第三章和c语言有很多共同之处.因为以前学过c所以看起来并没有十分费劲.虽然以前学习过c, 但是还是忘记了long整数占8个字节这件事情.另外我第一次接触布尔这个概念.了解 ...
- Linux内核分析第一周-通过分析汇编代码理解计算机是如何工作的
首先,我们先写一个简单的C语言程序,如下: int g(int x) { return x +3; } int f(int x) { return g(x); } int main(void) { r ...
- git commit时加上Signed-off-by信息
git commit -s -m "descriptions about the code" 只要加入-s参数即可自动加上Signed-off-by信息
- [POJ2625][UVA10288]Coupons
Description Coupons in cereal boxes are numbered 1 to n, and a set of one of each is required for a ...
- phantomjs学习资料
http://blog.csdn.net/mecho/article/details/45888465 phantomjs的使用说明,尤其是webpage创建,资源加载前后的处理方法.
- hdu 4348 To the moon 主席树区间更新
To the moon Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Prob ...
- Lua中获取table长度
-- table.getn(tableName) 得到一个table的大小,等同于操作符# -- 要注意的是:该table的key必须是有序的,索引是从1开始的. --例如有序的 local xian ...
- GetLastError()数字_转换为_文字
1.具体参数 可参看 http://blog.csdn.net/hongweigg/article/details/6821536 或 其它文章 或 MSDN 2.VC6 测试代码: #include ...