Confusion regarding plot of Linear convolution vs high speed convolution?
显示 更早的评论
I am reading proakis book,Digital signal processing using Matlab, 3rd edition I am performing example 5.23 but i am not getting same plot/results as book although i am using almost same code
First i am attaching my code and output and then i will attach snapshot of book containing code and output The issue with book code is that , i get error for "nu" variable and matlab says "NI" is undefined(i have underlined NI in book snapshot with red paint pencil) , so i used "NL" in my code and "NL"=N*L ,but i am not getting output as book
My code is as follow
clc;clear all;close all;
conv_time = zeros(1,150); fft_time = zeros(1,150);
%
for L = 1:150
tc = 0; tf=0;
N = 2*L-1; nu = ceil(log10(N*L)/log10(2)); N = 2^nu;
for I=1:100
h = randn(1,L); x = rand(1,L);
t0 = clock; y1 = conv(h,x); t1=etime(clock,t0); tc = tc+t1;
t0 = clock; y2 = ifft(fft(h,N).*fft(x,N)); t2=etime(clock,t0);
tf = tf+t2;
end
%
conv_time(L)=tc/100; fft_time(L)=tf/100;
end
%
n = 1:150; subplot(1,1,1);
plot(n(25:150),conv_time(25:150),n(25:150),fft_time(25:150))

Above is plot generated by my code
below is snap of plot and code of book

采纳的回答
更多回答(1 个)
Karthik Malisetty
2020-6-18
Hi,
From my understanding, the line
nu = ceil(log10(NI)/log10(2));
from the book seems to be using NI as a constant, while in your code, you are using the product of N and L (loop variable).
So, this might be causing the difference in the output. Recheck your NI value from the book (or any other sources).
类别
在 帮助中心 和 File Exchange 中查找有关 Correlation and Convolution 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!