DCSP-13 Jianfeng Feng Jianfeng.feng@warwick.ac.uk http://www.dcs.warwick.ac.uk/~feng/dsp.html Applications • Power spectrum estimate • Compression • Spectrogram • Image • Sampling theorem • White noise FFT DFT for spectral estimation One of the uses of the DFT is to estimate the frequency spectrum of a signal. The Fourier transform of a function produces a spectrum from which the original function can be reconstructed by an inverse transform. So it is reversible. (signal processing: transforms, demo) In order to do that, it preserves not only the magnitude of each frequency component, but also its phase. This information can be represented as a 2dimensional vector or a complex number, or as magnitude and phase (polar coordinates). In graphical representations, often only the magnitude (or squared magnitude) component is shown. This is also referred to as a power spectrum . In particular, given a continuous time signal x(t), the goal is to determine its frequency components by taking a finite set of samples as a vector, (x(0), x(1),…, x(N-1)), and computing its DFT as in the previous section. The fact that we window the signal x(n) (i.e. we take a finite set of data) will have an effect on the frequency spectrum we compute, and we have to be aware of that when we interpret the results of the DFT. This can be seen by defining a window sequence and the DTFT of the windowed signal Now notice that we can relate the right-hand side of the preceding expression to the DFT of the finite sequence x(0), … ,x(N-1) To see the effect of the windowing operation on the frequency spectrum, let us examine the case when the signal x(n) is a complex exponential, such as x(n) = exp( j w0 n) N=10, w0 = 0.5 Two effects of DFT 1. Lose of resolution 1. Leakage of energy from mainlobe to sidelobes As we have seen, the DFT is the basis of a number of applications, and is one of the most important tools in digital signal processing. clear all close all sampling_rate=100; %Hz omega=20; %signal frequecy Hz N=50000; %total number of samples for i=1:N x_sound(i)=cos(2*pi*omega*i/sampling_rate); %signal x(i)=cos(2*pi*omega*i/sampling_rate)+2*randn(1,1); %signal+noise axis(i)=sampling_rate*i/N; % for psd time(i)=i/sampling_rate; % for time trace end subplot(1,2,1) plot(time,x); %signal + noise, time trace xlabel('time (sec)'); ylabel('signal') subplot(1,2,2) plot(axis,abs(fft(x)).^2,'r'); % power of signal xlabel('Frequency') ylabel('Power') sound(x_sound, sampling_rate); %true signal sound • Singnal processing demo: transformation • A few words on Matlab periodogram (similar to fft) pwelch (overlapped windows) Algorithm x , ... , xN] is given by the The periodogram for a sequence [ 1 following formula: S (w ) where 1 2 N N 2 | x n exp( j w n ) | n 1 is in units of radians/sample. Algorithm x , ... , xN] is given by the The periodogram for a sequence [ 1 following formula: where is in units of radians/sample. If you define the frequency variable in Hz, the periodogram is defined as: S( f ) 1 Fs N N | x n exp( j ( 2 f / F s ) n ) | n 1 where Fs is the sampling frequency. 2 • • • Fs = 1000; t = 0:1/Fs:.296; x = exp(i*2*pi*200*t)+randn(size(t)); h = spectrum.periodogram; % Create a periodogram spectral estimator. • psd(h,x,'Fs',Fs); % Calculates and plots the two-sided PSD. Periodogram Power Spectral Density Estimate 0 Power/frequency (dB/Hz) -10 -20 -30 -40 -50 -60 0 100 200 300 400 500 600 Frequency (Hz) 700 800 900 The periodogram is an estimate of the PSD of the signdefined by the sequence [x1, ... , xN]. If you weight your signal sequence by a window [w1, ... , wN], then the weighted or modified periodogram is defined as: 1 S (w ) 2 N 2 N | x n w n exp( j w n ) | n 1 1 N 2 N |w n 1 n | Fs = 1000; t = 0:1/Fs:.296; x = cos(2*pi*t*200)+randn(size(t)); h = spectrum.welch; % Create a Welch spectral estimator. psd(h,x,'Fs',Fs); % Calculate and plot the PSD. Welch Power Spectral Density Estimate -16 -18 Power/frequency (dB/Hz) • • • • -20 -22 -24 -26 -28 -30 0 50 100 150 300 250 200 Frequency (Hz) 350 400 450 500 Spectrogram • A spectrogram is an image that shows how the power spectrum of a signal varies with time. 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 500 1000 1500 2000 005 054 004 051 y 002 052 003 Frequenc 053 001 05 0 8.1 6.1 4.1 Time 2.1 1 8.0 6.0 4.0 2.0 Time • • • • • t=0:0.001:20; % 2 secs @ 1kHz sample rate y=chirp(t,100,1,200,'q'); % Start @ 100Hz, cross 200Hz at t=1sec spectrogram(y,128,120,128,1E3); % Display the spectrogram title('Quadratic Chirp: start at 100Hz and cross 200Hz at t=1sec'); sound(y) Compression The use in MP3 is designed to greatly reduce the amount of data required to represent the audio recording and still sound like a faithful reproduction of the original uncompressed audio for most listeners. The use in MP3 is designed to greatly reduce the amount of data required to represent the audio recording and still sound like a faithful reproduction of the original uncompressed audio for most listeners. An MP3 file could result in a file that is about 1/11th the size of the file created from the original audio source. The compression works by reducing accuracy of certain parts of sound that are deemed beyond the auditory resolution ability of most people. The compression works by reducing accuracy of certain parts of sound that are deemed beyond the auditory resolution ability of most people. This method is commonly referred to as perceptual coding. The compression works by reducing accuracy of certain parts of sound that are deemed beyond the auditory resolution ability of most people. This method is commonly referred to as perceptual coding. It internally provides a representation of sound within a short-term time/frequency analysis window, by using psychoacoustic models to discard or reduce precision of components less audible to human hearing, and recording the remaining information in an efficient manner. This technique is often presented as relatively conceptually similar to the principles used by JPEG, an image compression format. Image processing Sampling and reconstruction The question we consider here is under what conditions we can completely reconstruct the original signal x(t) from its discretely sampled signal x(n). Power spectrum for white noise Noise is a stochastic process x(t), for time t (discrete or continuous) Most noisy noise should have no memory, which impliese that E x(t)x(t+s) = 0 if s is not zero E x(t)x(t) = 1 or in another words E x(t)x(t+s) =d(s) Therefore the psd of the white noise is flat: it has constant power for all frequencies, as confirmed in the previous matlabe example Different from all meaningful signals we encounter Why white noise has a flat power spectrum? Assume that x(n) is white noise which means N x(n) n N 0 ( law of l arg e numbers ) 2N N x 2 (n) n N 1 2N N x(n) x(n k ) d ( k ) ( autocorrel n N 2N ation ) x ( n ) exp( j w n ) x (w ) n | x (w ) | 2 x ( n ) exp( j w n ) x ( n ) exp( n n x ( n ) x ( m ) exp( j w ( n m )) n m x ( n ) x ( n k ) exp( j w k ) n k d ( k ) exp( j w k ) k jw n )