- #1
brushman
- 113
- 1
Homework Statement
Write a script which plays a Doppler shifted version of a WAV file.
The Attempt at a Solution
This is the code for a doppler shifted single frequency:
Code:
vs = 1100; % speed of sound in feet per second
v0 = s*22/15; % speed of the vehicle in feet per second
fs = 10000; % sampling frequency
ts = 1/fs; % the sampling period
f0 = 440;
td = d/vs; % this is the time for sound to move the distance d
r = v0/vs; % this ratio should be much less than one of course
t1 = sqrt(1 - td^2)/r -1; % time vehicle passes you
t = [ t1-3: ts: t1+3]; % a time base for the signal, with 3 seconds each side
a = (r^2)*(t-t1)/(1-(r^2));
b = ((td^2)+(r^2).*(t-t1).^2)./(1-(r^2));
tau = ((-1)*(2.*a)+sqrt(((2.*a).^2)+(4).*(b)))/(2); % quad form to solve for tau
y = .5 * sin(2*pi*f0*(t-tau));
What I need is to shift an entire wav file. I tried just setting f0 = wavread('file') but I get an error saying out of memory. Then when I change the f0*(t-tau) to f0.*(t-tau) I get an error saying matrix dimensions must agree.
I'm not really sure which way it's supposed to be, anyways.
Thanks.