Convolution
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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;
[s1,f,b]=wavread('C:\Users\N\Desktop\sara.wav');
5 Kommentare
Akzeptierte Antwort
Naz
am 19 Dez. 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:
[s1,f]=wavread('C:\Users\N\Desktop\family.wav');
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.
3 Kommentare
Weitere Antworten (2)
Walter Roberson
am 19 Dez. 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')
5 Kommentare
Walter Roberson
am 19 Dez. 2011
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
am 18 Mai 2012
@ 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
am 19 Dez. 2011
How about:
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')
[s1,f,b]=wavread(fullFileName);
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
message = sprintf('File not found:\n%s', fullFileName);
uiwait(warndlg(message));
end
17 Kommentare
Walter Roberson
am 19 Dez. 2011
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.
Siehe auch
Kategorien
Mehr zu Digital Filtering finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!