Frequency doesn't sound right

6 visualizzazioni (ultimi 30 giorni)
Tom il 5 Feb 2012
Hey, I'm just doing a tutorial for a course I'm doing and one question asks us to recover 'signal 2', where we're given signal 1 (x), and the combination of signal 1 & 2 (z).
Whether or not my process is right or not, there's something I'd like to ask. I thought I'd listen back to signal 2 (y(t) in this case). When looking at the graph of y(t), it's clear that the period T is 0.0025 sec. The inverse of this gives the frequency of the sound - 400 Hz. When I listen to this however, it sounds significantly lower than a tone at 400 Hz.
Is it something to do with my sampling frequency, or my number of points?
And here's my code: -
close all; clear all;
[x,fs] = wavread('signal_1');
x = transpose(x);
[z,fs] = wavread('signal1and2');
z = transpose(z);
N = length(x); %Number of points
i_nyquist = N/2+1; %index of nyquist frequency
dt = 1/fs; %sampling interval or sampling period
t = (([1:N]-1)/fs); %Time axis
posfreq = fs*([1:i_nyquist]-1)/N; %positive frequency axis
negfreq = fs*([i_nyquist:(N-1)]-N)/N;%negative frequency axis
X = (fft(x,N)); %Transform into frequency domain using FFT
Z = (fft(z,N)); %Transform into frequency domain using FFT
Y = (Z./X); %Y in the frequency domain
y = ifft(Y); %Transform into time domain using inverse FFT

Risposta accettata

Daniel Shub
Daniel Shub il 6 Feb 2012
The function sound uses a sample rate of 8192 unless you give it something else. My guess is you want
sound(y, fs);
You code also assumes that x and z have the same lengths and sample rates.
  1 Commento
Tom il 7 Feb 2012
Thanks Daniel, that sorted it. They did have the same length and sample rates, but yeah I needed to add the 'fs' into the sound command to get it sounding at the correct pitch.
Many thanks.

Accedi per commentare.

Più risposte (0)



Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by