## Convolution

on 19 Dec 2011

### Naz (view profile)

Hello everybody
Please,I want to do the convolution on my speech signal using conv() How can I do that??
This is my signal
f=8000;
b=8;

Naz

### Naz (view profile)

2011 年 12 月 19 日
With a sinusoid of 8kHz? Something like modulation? Theoretically, if your voice contains frequencies over 4kHz you will have aliasing. Also, you need to choose how to truncate your sinusoidal signal (the length in time)
Naz

### Naz (view profile)

on 19 Dec 2011
Convolution with itself? Then just do conv(s1,s1)
sara s

### sara s (view profile)

2011 年 12 月 19 日
Yes,I did that previously
But I have this error
??? Error using ==> conv at 27
A and B must be vectors.

### Naz (view profile)

on 19 Dec 2011

First of all, this
f=8000;
b=8;
is useless information because it will be rewritten anyway below, unless this information is given to you and you don't fully describe the required task. ASSUMING that your professor wants you to perform convolution of the recorded signal with itself, you can perform this:
s2 = conv(s1(1,:),s1(1,:)); %using all columns from the first row
subplot(2,1,1)
plot(s1(1,:))
subplot(2,1,2)
plot(s2)
Of course, the resulting signal will be nothing like the initial signal.

sara s

### sara s (view profile)

on 19 Dec 2011
I have this error
??? Error using ==> conv at 27
A and B must be vectors.
Naz

### Naz (view profile)

on 19 Dec 2011
Try replacing both s1 with s1'
Walter Roberson

### Walter Roberson (view profile)

on 19 Dec 2011
Sara has a two-channel wav file so s1 is not a vector.

### Walter Roberson (view profile)

on 19 Dec 2011

[conv(s1(:,1),s(:,1), 'same'), conv(s1(:,2), s1(:,2), 'same')]
That is for convolving each channel with itself. If for some reason you wanted to convolve left with right, then it would be
conv(s1(:,1), s1(:,2), 'same')

sara s

### sara s (view profile)

on 19 Dec 2011
I have this error
??? Error: An array for multiple LHS assignment cannot contain numeric value.
Walter Roberson

### Walter Roberson (view profile)

2011 年 12 月 19 日
Please show the traceback of the error -- which line of code it occurred in, which routine, where it was called from, and so on.
Timothy Dixon

### Timothy Dixon (view profile)

2012 年 5 月 18 日
@ sara correct the type error from walter conv(s1(:,1),s(:,1)
correction
conv(s1(:,1),s1(:,1),
s1 was missing. if it does not work, then try to upgrade the version of Matlab that support the recording card system

### Image Analyst (view profile)

on 19 Dec 2011

clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
imtool close all; % Close all imtool figures.
clear; % Erase all existing variables.
workspace; % Make sure the workspace panel is showing.
fontSize = 24;
fullFileName = 'C:\Users\N\Desktop\sara.wav';
if exist(fullFileName, 'file')
subplot(2,1,1);
plot(s1);
grid on;
title('Original Signal', 'FontSize', fontSize);
windowSize = 201; % or whatever.
s1_filtered = conv(s1, ones(1, windowSize ) / windowSize );
subplot(2,1,2);
plot(s1_filtered);
grid on;
title('Filtered Signal', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]); % Maximize figure.
set(gcf,'name','Demo by ImageAnalyst','numbertitle','off')
else
uiwait(warndlg(message));
end

sara s

### sara s (view profile)

2011 年 12 月 19 日
and I just wanted to make convolve the signal with it self and that is enough for me and Thanks a lot Image Analyst,you are very good
Walter Roberson

### Walter Roberson (view profile)

2011 年 12 月 19 日
There are a number of different filters shown at http://web.mit.edu/1.130/WebDocs/1.130/Software/Examples/example1.m
In that code, you want the vectors that are directly underneath each comment. For example the line under '%Downsampling' is
x = [-1 0 9 16 9 0 -1] / 16;
and that x would be suitable to convolve against.
sara s

### sara s (view profile)

on 20 Dec 2011
wow Walter thanks so so much ,that is so benefit
Thanks a lot