数字信号处理基础实验(Laboratory Exercise 1)

合集下载

数字信号处理实验报告

数字信号处理实验报告

实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。

2、熟悉离散信号和系统的时域特性。

3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。

4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。

二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。

2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。

信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。

根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。

三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。

(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。

数字信号处理基础实验(Laboratory Exercise 2)

数字信号处理基础实验(Laboratory Exercise 2)

x[n] suppressed by the discrete-time system simulated by this
Modify Program P2_1 to simulate the system y[n] = 0.5(x[n]–x[n–1]) and process the input x[n] = s1[n]+s2[n] resulting in the output sequence shown below:
Project 2.4 Create Your Own Convolution Function (custom-function, user-defined function) Q.2.5 Requirements: Your own function named
my_conv(a,b) should have the same function
my_filter(b,a,x) should have the same
function with
filter(b,a,x) provided by the MATLAB, i.e., to realize a filter represented by the
standard difference equation
n = 0:14;tic; y1 = conv(h,x);toc;tic y2=my_conv(h,x);toc; subplot(211);stem(n,y1,'ro'); xlabel('Time index n'); ylabel('Amplitude'); title('Output signal by conv(a,b)'); grid on; subplot(212);stem(n,y2); xlabel('Time index n'); ylabel('Amplitude'); title('Output signal by my\_conv(a,b)'); grid on; my_conv.m %my_conv function y=my_conv(a,b) La=length(a); Lb=length(b); L=La+Lb-1; y=zeros(1,L); A=[zeros(1,Lb-1) a zeros(1,Lb-1)]; for n=1:L B=[zeros(1,n-1) fliplr(b) zeros(1,L-n)]; y(n)=sum(A.*B); end

数字信号处理米特拉第四版实验一答案

数字信号处理米特拉第四版实验一答案

Name : SOLUTION Section :Laboratory Exercise 1DISCRETE-TIME SIGNALS: TIME-DOMAIN REPRESENTATION1.1GENERATION OF SEQUENCESProject 1.1Unit sample and unit step sequencesA copy of Program P1_1 is given below.% Program P1_1% Generation of a Unit Sample Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the unit sample sequence u = [zeros(1,10) 1 zeros(1,20)]; % Plot the unit sample sequence stem(n,u);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]); Answers : Q1.1The unit sample sequence u[n] generated by running Program P1_1 is shown below:Time index nA m p l i t u d eUnit Sample SequenceQ1.2The purpose of clf command is – clear the current figureThe purpose of axis command is – control axis scaling and appearanceThe purpose of title command is – add a title to a graph or an axis and specify textpropertiesThe purpose of xlabel command is – add a label to the x-axis and specify textpropertiesThe purpose of ylabel command is – add a label to the y-axis and specify the textpropertiesQ1.3The modified Program P1_1 to generate a delayed unit sample sequence ud[n] with a delay of 11 samples is given below along with the sequence generated by running this program .% Program P1_1, MODIFIED for Q1.3% Generation of a DELAYED Unit Sample Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the DELAYED unit sample sequence u = [zeros(1,21) 1 zeros(1,9)];% Plot the DELAYED unit sample sequence stem(n,u);xlabel('Time index n');ylabel('Amplitude'); title('DELAYED Unit Sample Sequence'); axis([-10 20 0 1.2]);Time index nA m p l i t u d eDELAYED Unit Sample SequenceQ1.4The modified Program P1_1 to generate a unit step sequence s[n] is given below along with the sequence generated by running this program .% Program Q1_4% Generation of a Unit Step Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the unit step sequence s = [zeros(1,10) ones(1,21)]; % Plot the unit step sequence stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Step Sequence'); axis([-10 20 0 1.2]);Time index nA m p l i t u d eUnit Step SequenceQ1.5The modified Program P1_1 to generate a unit step sequence sd[n] with an advance of 7 samples is given below along with the sequence generated by running this program .% Program Q1_5% Generation of an ADVANCED Unit Step Sequence clf;% Generate a vector from -10 to 20 n = -10:20;% Generate the ADVANCED unit step sequence sd = [zeros(1,3) ones(1,28)];% Plot the ADVANCED unit step sequence stem(n,sd);xlabel('Time index n');ylabel('Amplitude'); title('ADVANCED Unit Step Sequence'); axis([-10 20 0 1.2]);Time index nA m p l i t u d eADVANCED Unit Step SequenceProject 1.2 Exponential signalsA copy of Programs P1_2 and P1_3 are given below .% Program P1_2% Generation of a complex exponential sequence clf;c = -(1/12)+(pi/6)*i; K = 2; n = 0:40;x = K*exp(c*n); subplot(2,1,1); stem(n,real(x));xlabel('Time index n');ylabel('Amplitude'); title('Real part'); subplot(2,1,2); stem(n,imag(x));xlabel('Time index n');ylabel('Amplitude'); title('Imaginary part');% Program P1_3% Generation of a real exponential sequence clf;n = 0:35; a = 1.2; K = 0.2; x = K*a.^n; stem(n,x);xlabel('Time index n');ylabel('Amplitude');Answers: Q1.6The complex-valued exponential sequence generated by running Program P1_2 is shown below :510152025303540Time index n A m p l i t u d eReal partTime index nA m p l i t u d eImaginary partQ1.7The parameter controlling the rate of growth or decay of this sequence is – the real part of c .The parameter controlling the amplitude of this sequence is - KQ1.8The result of changing the parameter c to (1/12)+(pi/6)*i is – since exp(-1/12) isless than one and exp(1/12) is greater than one, this change means that the envelope of the signal will grow with n instead of decay with n.Q1.9The purpose of the operator real is – to extract the real part of a Matlab vector.The purpose of the operator imag is – to extract the imaginary part of a Matlab vector. Q1.10The purpose of the command subplot is – to plot more than one graph in the sameMatlab figure.Q1.11The real-valued exponential sequence generated by running Program P1_3 is shown below :Time index nA m p l i t u d eQ1.12The parameter controlling the rate of growth or decay of this sequence is - aThe parameter controlling the amplitude of this sequence is - KQ1.13The difference between the arithmetic operators ^ and .^ is – “^” raises a square matrix toa power using matrix multiplication. “.^” raises the elements of a matrix or vector to a power; this is a “pointwise” operation.Q1.14The sequence generated by running Program P1_3 with the parameter a changed to 0.9 and the parameter K changed to 20 is shown below :5101520253035Time index nA m p l i t u d eQ1.15The length of this sequence is - 36It is controlled by the following MATLAB command line : n = 0:35;It can be changed to generate sequences with different lengths as follows (give an example command line and the corresponding length): n = 0:99; makes the length 100. Q1.16The energies of the real-valued exponential sequences x [n]generated in Q1.11 and Q1.14 and computed using the command sum are - 4.5673e+004 and 2.1042e+003.Project 1.3 Sinusoidal sequencesA copy of Program P1_4 is given below .% Program P1_4% Generation of a sinusoidal sequence n = 0:40;f = 0.1; phase = 0; A = 1.5; arg = 2*pi*f*n - phase; x = A*cos(arg);clf; % Clear old graphstem(n,x); % Plot the generated sequence axis([0 40 -2 2]); grid;title('Sinusoidal Sequence'); xlabel('Time index n'); ylabel('Amplitude'); axis; Answers:Q1.17 The sinusoidal sequence generated by running Program P1_4 is displayed below .0510152025303540Sinusoidal SequenceTime index nA m p l i t u d eQ1.18The frequency of this sequence is- f = 0.1 cycles/sample.It is controlled by the following MATLAB command line: f = 0.1;A sequence with new frequency 0.2 can be generated by the following command line:f = 0.2;The parameter controlling the phase of this sequence is- phaseThe parameter controlling the amplitude of this sequence is- AThe period of this sequence is - 2π/ω = 1/f = 10Q1.19 The length of this sequence is - 41It is controlled by the following MATLAB command line: n = 0:40;A sequence with new length __81_ can be generated by the following command line:n = 0:80;Q1.20 The average power of the generated sinusoidal sequence is–sum(x(1:10).*x(1:10))/10 = 1.1250Q1.21 The purpose of axis command is – to set the range of the x-axis to [0,40] and the range of the y-axis to [-2,2].The purpose of grid command is – to turn on the drawing of grid lines on the graph.Q1.22 The modified Program P1_4 to generate a sinusoidal sequence of frequency 0.9 is given below along with the sequence generated by running it.% Program Q1_22A% Generation of a sinusoidal sequencen = 0:40;f = 0.9;phase = 0;A = 1.5;arg = 2*pi*f*n - phase;x = A*cos(arg);clf; % Clear old graphstem(n,x); % Plot the generated sequenceaxis([0 40 -2 2]);grid;title('Sinusoidal Sequence');xlabel('Time index n');ylabel('Amplitude');axis;Sinusoidal SequenceTime index nA m p l i t u d eA comparison of this new sequence with the one generated in Question Q1.17 shows - thetwo graphs are identical. This is because, in the modified program, we have ω = 0.9*2π. This generates the same graph as a cosine with angular frequency ω - 2π = −0.1*2π. Because cosine is an even function, this is the same as a cosine with angular frequency +0.1*2π, which was the value used in P1_4.m in Q1.17.In terms of Hertzian frequency, we have for P1_4.m in Q1.17 that f = 0.1 Hz/sample. For the modified program in Q1.22, we have f = 0.9 Hz/sample, which generates the same graph as f = 0.9 – 1 = −0.1. Again because cosine is even, this makes a graph that is identical to the one we got in Q1.17 with f = +0.1 Hz/sample.A sinusoidal sequence of frequency 1.1 generated by modifying Program P1_4 is shown below.0510152025303540Sinusoidal SequenceTime index nA m p l i t u d eA comparison of this new sequence with the one generated in Question Q1.17 shows - thegraph here is again identical to the one in Q1.17. This is because a cosine of frequency f = 1.1 Hz/sample is identical to one with frequency f = 1.1 – 1 = 0.1 Hz/sample, which was the frequency used in Q1.17.Q1.23The sinusoidal sequence of length 50, frequency 0.08, amplitude 2.5, and phase shift of 90 degrees generated by modifying Program P1_4 is displayed below .NOTE: for this program, it is necessary to convert the phase of 90 deg to radians and account for the minus sign that appears in the statement “arg = 2*pi*f*n - phase;” as opposed to the plus sign shown in eq. (1.12) of the lab manual. The correct statement to generate the phase is “phase = -90/(2*pi);”. It is also necessary to modify the axis command to account for the new length and amplitude of the signal. The correct axis statement is “axis([0 50 -3 3]);”.05101520253035404550Sinusoidal SequenceTime index nA m p l i t u d eThe period of this sequence is - 2π/ω = 1/f = 1/0.08 = 1/(8/100) = 100/8 = 25/2.Therefore, the fundamental period is 25 and the graph has the “appearance” of going through 2 cycles of a cosine waveform during each period.Q1.24By replacing the stem command in Program P1_4 with the plot command, the plot obtained is as shown below :Sinusoidal SequenceTime index nA m p l i t u d eThe difference between the new plot and the one generated in Question Q1.17 is – instead ofdrawing stems from the x-axis to the points on the curve, the “plot ” command connects the points with straight line segments, which approximates the graph of a continuous-time cosine signal.Q1.25By replacing the stem command in Program P1_4 with the stairs command the plot obtained is as shown below :Sinusoidal SequenceTime index nA m p l i t u d eThe difference between the new plot and those generated in Questions Q1.17 and Q1.24 is– the “stairs” command produces a stairstep plot as opposed to the stem graph that was generated in Q1.17 and the straight-line interpolation plot that was generated in Q1.24.Project 1.4 Random signalsAnswers:Q1.26 The MATLAB program to generate and display a random signal of length 100 with elements uniformly distributed in the interval [–2, 2] is given below along with the plot of the random sequence generated by running the program:% Program Q1_26% Generation of a uniform random sequencen = 0:99;A = 2;rand('state',sum(100*clock)); % "seed" the generator% rand(1,100) is uniform in [0,1]% rand(1,100)-0.5 is uniform in [-0.5,0.5]% 4*(rand(1,100)-0.5) is uniform in [-2,2]x = 2*A*(rand(1,length(n))-0.5);clf; % Clear old graphstem(n,x); % Plot the generated sequenceaxis([0 length(n) -round(2*(A+0.5))/2 round(2*(A+0.5))/2]);grid;title('Uniform Random Sequence');xlabel('Time index n');ylabel('Amplitude');axis;102030405060708090100Uniform Random SequenceTime index nA m p l i t u d eQ1.27 The MATLAB program to generate and display a Gaussian random signal of length 75 withelements normally distributed with zero mean and a variance of 3 is given below along with the plot of the random sequence generated by running the program :% Program Q1_27% Generation of a Gaussian random sequence% NOTE: if X is a random variable with zero mean and % unity variance, then (aX + b) is a random variable % with mean b and variance a^2. This follows from % basic probability theory. n = 0:74;xmean = 0; % mean of xxstd = sqrt(3); % standard deviation of xrandn('state',sum(100*clock)); % "seed" the generator % generate the sequencex = xstd*randn(1,length(n)) + xmean; % setup the graph and plotclf; % Clear old graphstem(n,x); % Plot the generated sequence xmax = max(abs(x));Ylim = round(2*(xmax+0.5))/2; axis([0 length(n) -Ylim Ylim]); grid;title('Gaussian Random Sequence'); xlabel('Time index n'); ylabel('Amplitude'); axis;10203040506070Gaussian Random SequenceTime index nA m p l i t u d eQ1.28The MATLAB program to generate and display five sample sequences of a random sinusoidal signal of length 31{X[n]} = {A·cos(ωo n + φ)}where the amplitude A and the phase φ are statistically independent random variables with uniform probability distribution in the range 0≤A ≤4 for the amplitude and in the range 0 ≤ φ ≤ 2π for the phase is given below. Also shown are five sample sequences generated by running this program five different times .% Generates the "deterministic stochastic process" % called for in Q1.28. n = 0:30; f = 0.1; Amax = 4;phimax = 2*pi;rand('state',sum(100*clock)); % "seed" the generator A = Amax*rand;% NOTE: successive calls to rand without arguments % return a random sequence of scalars. Since this % random sequence is "white" (uncorrelated), it is % not necessary to re-seed the generator for phi. phi = phimax*rand;% generate the sequence arg = 2*pi*f*n + phi; x = A*cos(arg); % plotclf; % Clear old graphstem(n,x); % Plot the generated sequence Ylim = round(2*(Amax+0.5))/2; axis([0 length(n) -Ylim Ylim]); grid;title('Sinusoidal Sequence with Random Amplitude and Phase'); xlabel('Time index n'); ylabel('Amplitude'); axis;Sinusoidal Sequence with Random Amplitude and PhaseTime index nA m p l i t u d eSinusoidal Sequence with Random Amplitude and PhaseTime index nA m p l i t u d eTime index nA m p l i t u d eSinusoidal Sequence with Random Amplitude and PhaseTime index nA m p l i t u d eTime index nA m p l i t u d e1.2 SIMPLE OPERATIONS ON SEQUENCESProject 1.5Signal SmoothingA copy of Program P1_5 is given below .% Program P1_5% Signal Smoothing by Averaging clf; R = 51;d = 0.8*(rand(R,1) - 0.5); % Generate random noise m = 0:R-1;s = 2*m.*(0.9.^m); % Generate uncorrupted signal x = s + d'; % Generate noise corrupted signal subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.');xlabel('Time index n');ylabel('Amplitude'); legend('d[n] ','s[n] ','x[n] ');x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0]; y = (x1 + x2 + x3)/3; subplot(2,1,2);plot(m,y(2:R+1),'r-',m,s,'g--'); legend( 'y[n] ','s[n] ');xlabel('Time index n');ylabel('Amplitude'); Answers: Q1.29The signals generated by running Program P1_5 are displayed below :05101520253035404550-5510Time index nA m p l i t u d e2468Time index nA m p l i t u d eQ1.30The uncorrupted signal s[n]is - the product of a linear growth with a slowly decayingreal exponential.The additive noise d[n]is – a random sequence uniformly distributed between -0.4 and+0.4.Q1.31 The statement x = s + d CANNOT be used to generate the noise corrupted signalbecause – d is a column vector, whereas s is a row vector; it is necessary to transposeone of these vectors before adding them.Q1.32The relations between the signals x1, x2, and x3, and the signal x are – all three signalsx1, x2, and x3 are extended versions of x , with one additional sample appended at the left and one additional sample appended to the right. The signal x1 is a delayedversion of x , shifted one sample to the right with zero padding on the left. The signal x2 is equal to x , with equal zero padding on both the left and right to account for the extended length. Finally, x3 is a time advanced version of x , shifted one sample to the left with zero padding on the right.Q1.33The purpose of the legend command is – to create a legend for the graphs. In P1_5, the signals are plotted using different colors and line types; the legend providesinformation about which color and line type is associated with each signal.Project 1.6Generation of Complex SignalsA copy of Program P1_6 is given below.% Program P1_6% Generation of amplitude modulated sequenceclf;n = 0:100;m = 0.4;fH = 0.1; fL = 0.01;xH = sin(2*pi*fH*n);xL = sin(2*pi*fL*n);y = (1+m*xL).*xH;stem(n,y);grid;xlabel('Time index n');ylabel('Amplitude');Answers:Q1.34 The amplitude modulated signals y[n]generated by running Program P1_6 for various values of the frequencies of the carrier signal xH[n]and the modulating signal xL[n], andvarious values of the modulation index m are shown below:m=0.4; fH=0.1; fL=0.01:Time index nA m p l i t u d em=0.9; fH=0.1; fL=0.1:Time index nA m p l i t u d em=0.4; fH=0.1; fL=0.005:Time index nA m p l i t u d em=0.4; fH=0.25; fL=0.01:Time index nA m p l i t u d eQ1.35 The difference between the arithmetic operators * and .* is – “*” multiplies twoconformable matrices or vectors using matrix multiplication. “.*” takes the pointwise products of the elements of two matrices or vectors that have the same dimensions.A copy of Program P1_7 is given below .% Program P1_7% Generation of a swept frequency sinusoidal sequence n = 0:100; a = pi/2/100; b = 0;arg = a*n.*n + b*n; x = cos(arg);clf; stem(n, x);axis([0,100,-1.5,1.5]);title('Swept-Frequency Sinusoidal Signal'); xlabel('Time index n'); ylabel('Amplitude'); grid; axis; Answers:Q1.36 The swept-frequency sinusoidal sequence x[n] generated by running Program P1_7 isdisplayed below .Swept-Frequency Sinusoidal SignalTime index nA m p l i t u d eQ1.37The minimum and maximum frequencies of this signal are - The minimum occurs at n=0, where we have 2an+b = 0 rad/sample = 0 Hz/sample. The maximum occurs at n=100, where we have 2an+b = 200a = 200π(0.5)(0.01) = π rad/sample= 0.5 Hz/sample.Q1.38The Program 1_7 modified to generate a swept sinusoidal signal with a minimum frequency of0.1 and a maximum frequency of 0.3 is given below:Note: for a minimum frequency of 0.1 Hz/sample = π/5 rad/sample at n=0, we must have 2a(0) + b =π/5, which implies b=π/5. For a maximum frequency of 0.3 Hz/sample = 3π/5 rad/sample at n=100, we must have 2a(100) + π/5 = 3π/5, which implies a=π/500.% Program Q1_38% Generation of a swept frequency sinusoidal sequencen = 0:100;a = pi/500;b = pi/5;arg = a*n.*n + b*n;x = cos(arg);clf;stem(n, x);axis([0,100,-1.5,1.5]);title('Swept-Frequency Sinusoidal Signal');xlabel('Time index n');ylabel('Amplitude');grid; axis;INFORMATION1.3 WORKSPACEQ1.39The information displayed in the command window as a result of the who command is – a listing of the names of the variables defined in the current workspace.Q1.40The information displayed in the command window as a result of the whos command is – a long form listing of the variables defined in the current workspace, including the variable names, their dimensions (size), the number of bytes of storage required for each variable, and the datatype of each variable. The total number of bytes of storagefor the entire workspace is also displayed.1.4 OTHER TYPES OF SIGNALS (Optional)Project 1.8 Squarewave and Sawtooth SignalsAnswer:Q1.41MATLAB programs to generate the square-wave and the sawtooth wave sequences of the type shown in Figures 1.1 and 1.2 are given below along with the sequences generated by running these programs:% Program Q1_41A% Generation of the square wave in Fig. 1.1(a)n = 0:30;f = 0.1;phase = 0;duty=60;A = 2.5;arg = 2*pi*f*n + phase;x = A*square(arg,duty);clf; % Clear old graphstem(n,x); % Plot the generated sequenceaxis([0 30 -3 3]);grid;title('Square Wave Sequence of Fig. 1.1(a)');xlabel('Time index n');ylabel('Amplitude');axis;% Program Q1_41B% Generation of the square wave in Fig. 1.1(b)n = 0:30;f = 0.1;phase = 0;duty=30;A = 2.5;arg = 2*pi*f*n + phase;x = A*square(arg,duty);clf; % Clear old graphstem(n,x); % Plot the generated sequenceaxis([0 30 -3 3]);grid;title('Square Wave Sequence of Fig. 1.1(b)');xlabel('Time index n');ylabel('Amplitude');axis;% Program Q1_41C% Generation of the square wave in Fig. 1.2(a) n = 0:50;f = 0.05;phase = 0;peak = 1;A = 2.0;arg = 2*pi*f*n + phase;x = A*sawtooth(arg,peak);clf; % Clear old graphstem(n,x); % Plot the generated sequence axis([0 50 -2 2]);grid;title('Sawtooth Wave Sequence of Fig. 1.2(a)'); xlabel('Time index n');ylabel('Amplitude');axis;% Program Q1_41D% Generation of the square wave in Fig. 1.2(b) n = 0:50;f = 0.05;phase = 0;peak = 0.5;A = 2.0;arg = 2*pi*f*n + phase;x = A*sawtooth(arg,peak);clf; % Clear old graphstem(n,x); % Plot the generated sequence axis([0 50 -2 2]);grid;title('Sawtooth Wave Sequence of Fig. 1.2(b)'); xlabel('Time index n');ylabel('Amplitude');axis;051015202530Time index nA m p l i t u d eSquare Wave Sequence of Fig. 1.1(b)Time index nA m p l i t u d eTime index nA m p l i t u d eSawtooth Wave Sequence of Fig. 1.2(b)Time index nA m p l i t u d eDate: 14 September, 2006 Signature: HAVLICEK。

数字信号处理基础实验指导书

数字信号处理基础实验指导书

数字信号处理基础实验指导书《数字信号处理》实验指导书光电工程学院二○○九年十月实验一离散时间信号分析一、实验目的1.掌握各种常用的序列,理解其数学表达式和波形表示。

2.掌握在计算机中生成及绘制数字信号波形的方法。

3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。

4.掌握线性卷积软件实现的方法。

5.掌握计算机的使用方法和常用系统软件及应用软件的使用。

6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。

二、实验原理1.序列的基本概念离散时间信号在数学上可用时间序列来表示,其中代表序列的第n 个数字,n代表时间的序列,n的取值范围为的整数,n取其它值没有意义。

离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号进行等间隔采样,采样间隔为T,得到一个有序的数字序列就是离散时间信号,简称序列。

2.常用序列常用序列有:单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。

3.序列的基本运算序列的运算包括移位、反转、和、积、标乘、累加、差分运算等。

4.序列的卷积运算上式的运算关系称为卷积运算,式中代表两个序列卷积运算。

两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。

其计算的过程包括以下4个步骤。

(1)反褶:先将和的变量换成,变成和,再将以纵轴为对称轴反褶成。

(2)移位:将移位,得。

当为正数时,右移位;当为负数时,左移位。

(3)相乘:将和的对应点值相乘。

(4)求和:将以上所有对应点的乘积累加起来,即得。

三、主要实验仪器及材料微型计算机、Matlab软件6.5或更高版本。

四、实验内容1.知识准备认真复习以上基础理论,理解本实验所用到的实验原理。

2.离散时间信号(序列)的产生利用MATLAB或C语言编程产生和绘制下列有限长序列:(1)单位脉冲序列(2)单位阶跃序列(3)矩形序列(4)正弦型序列(5)任意序列3.序列的运算利用MATLAB编程完成上述两序列的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。

数字信号处理基础实验报告一概要

数字信号处理基础实验报告一概要

Laboratory Exercise 1 (2 class hours) DISCRETE-TIME SIGNALS: TIME-DOMAIN REPRESENTATION Project 1.1 Unit impulse and unit step sequencesA copy of Program P1_1 is given below.% Program P1_1% Generation of a Unit impulse Sequenceclf;% Generate a vector from -10 to 20n = -10:20;% Generate the unit impulse sequencedelta = [zeros(1,10) 1 zeros(1,20)];% Plot the unit impulse sequencestem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Impulse Sequence');axis([-10 20 0 1.2]);Answers:Q1.1The unit impulse sequence δ[n] generated by running Program P1_1 is shown below:Q1.2The modified Program P1_1 to generate a delayed unit sample sequence δd[n]with a delay of 11 samples is given below along with the sequence generated by running this program.% Program Q1.2% Generation of a Unit impulse Sequence with a delay of 11 samplesclf;n = -10:20;delta = [zeros(1,21) 1 zeros(1,9)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Impulse Sequence with a delay of 11 samples');axis([-10 20 0 1.2]);Q1.3The modified Program P1_1 to generate a unit step sequence u[n]is given below along with the sequence generated by running this program.% Program Q1.3% Generation of a unit step sequenceclf;n = -10:20;delta = [zeros(1,10),ones(1,21)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Step Sequence');axis([-10 20 0 1.2]);Q1.4The modified Program P1_1 to generate a unit step sequence ud[n] with an advance of 7 samples is given below along with the sequence generated by running this program.% Program Q1.4% Generation of a unit step sequence with an advance of 7 samplesclf;n = -10:20;delta = [zeros(1,17),ones(1,14)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Step Sequence with an advance of 7 samples');axis([-10 20 0 1.2]);Project 1.2 Exponential signalsA copy of Programs P1_2 and P1_3 are given below.% Program P1_2% Generation of a complex exponential sequence clf;c = -(1/12)+(pi/6)*i;K = 2;n = 0:40;x = K*exp(c*n);subplot(2,1,1);stem(n,real(x));xlabel('Time index n');ylabel('Amplitude'); title('Real part');subplot(2,1,2);stem(n,imag(x));xlabel('Time index n');ylabel('Amplitude'); title('Imaginary part');% Program P1_3% Generation of a real exponential sequenceclf;n = 0:35; a = 1.2; K = 0.2;x = K*a.^n;stem(n,x);xlabel('Time index n');ylabel('Amplitude');Answers:Q1.5The complex-valued exponential sequence generated by running Program P1_2 is shown below:Q1.6The purpose of the operator real is: Complex real part.确定一个复数或矩阵的实部;The purpose of the operator imag is: Complex image part. 确定一个复数或矩阵的虚部.Q1.7The purpose of the command subplot is:Create axes in tiled positions.(将图形窗口分成多个矩形窗格来显示多个图形)Q1.8The real-valued exponential sequence generated by running Program P1_3 is shown below:Q1.9The difference between the arithmetic operators ^ and .^ is : ^数值乘方,而.^矩阵乘方。

数字信号处理实验一 实验报告

数字信号处理实验一 实验报告

数字信号处理实验一1.完成本文档内容的自学阅读和其中各例题后子问题;Q1.1运行程序P1.1,以产生单位样本序列u[n]并显示它。

答: clf;n=-10:20;u=[zeros(1,10) 1 zeros(1,20)];stem(n,u);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2])Q1.2命令clf,axis,title,xlabel和ylabel的作用是什么?答:clf清除图对象,axis 控制轴刻度和风格的高层指令,title 设置图名,xlabel和ylabel设置横纵坐标轴名称。

Q1.3修改程序P1.1以产生带有延时11个单位样本的延迟单位样本序列ud[n]。

运行修改的程序并显示产生的序列。

答:clf;n=0:30;ud=[zeros(1,11) 1 zeros(1,19)];stem(n,ud);xlabel('时间序号n');ylabel('振幅');title('单位样本序列');axis([0 30 0 1.2])Q1.4修改程序P1.1以产生单位步长序列s[n].运行修改后程序并显示产生的序列。

答:clf;n = 0:30;u = [1.*n];stem(n,u);title('Unit Sample Sequence');axis([0 30 0 30])Q1.5修改程序P1.1,以产生带有超前7个样本的延时单位阶跃序列sd[n]。

运行修改后的程序并显示产生的序列。

答:clf;n = -15:30;s=[zeros(1,8) ones(1,38)];stem(n,s);xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence');axis([-15 30 0 1.2]);Q1.6 运行程序P1.2,以产生复数值的指数序列。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。

在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。

本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。

实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。

通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。

实验设置如下:1. 设置采样频率为8kHz。

2. 生成一个正弦信号:频率为1kHz,振幅为1。

3. 生成一个方波信号:频率为1kHz,振幅为1。

4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。

这体现了正弦信号和方波信号在时域上的不同特征。

实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。

在实际应用中,信号的采样和重构对信号处理的准确性至关重要。

实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。

2. 设置采样频率为8kHz。

3. 对正弦信号进行采样,得到离散时间信号。

4. 对离散时间信号进行重构,得到连续时间信号。

5. 将重构的信号通过DAC输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。

这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。

数字信号处理基础实验报告_

数字信号处理基础实验报告_

本科生实验报告实验课程数字信号处理基础学院名称地球物理学院专业名称地球物理学学生姓名学生学号指导教师王山山实验地点5417实验成绩二〇一四年十一月二〇一四年十二月填写说明1、适用于本科生所有的实验报告(印制实验报告册除外);2、专业填写为专业全称,有专业方向的用小括号标明;3、格式要求:①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。

②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。

字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。

③具体要求:题目(二号黑体居中);摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章××(小二号黑体居中,段前0.5行)1.1 ×××××小三号黑体×××××(段前、段后0.5行)1.1.1小四号黑体(段前、段后0.5行)参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱并将信号进行奇偶分解一、实验原理单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。

用Excel软件绘图显示计算结果。

并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。

用Excel 软件绘图显示计算结果。

二、实验程序代码(1)离散抽样double a,t;a=2*f*f*log(m);int i;for(i=0;i<N;i++){t=i*dt;h[i]=exp(-a*t*t)*sin(2*3.14*f*t);}(2)奇偶分解float h1[128], h2[128], h3[128], h4[128];int i;for(i=0;i<2*N;i++){h1[i]=h2[i]=h3[i]=h4[i]=0;}for(i=N;i<2*N;i++){h1[i]=h[i-N];}double a;float t=0;a=2*f*f*log(M);for(i=N;i>=0;i--){h2[i]=float(exp(-a*t*t)*sin(2*3.14*f*t));t=t-dt;}for(i=0;i<2*N;i++){h3[i]=h1[i]+h2[i];h4[i]=h1[i]-h2[i];}三、实验结果图(1)离散抽样A信号图B频谱图C频谱图D频谱图(2)奇偶分解A信号图B翻转信号C偶对称信号D奇对称信号四、结果分析对单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。

数字信号处理实验报告_完整版

数字信号处理实验报告_完整版

实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。

2.应用DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。

2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。

由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。

如果没有更多的数据,可以通过补零来增加数据长度。

3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。

对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

数字信号处理实验基础实验共21页文档

数字信号处理实验基础实验共21页文档

数字信号处理实验基础实验
1、战鼓一响,法律无声。——英国 2、任何法律的根本;不,不成文法本 身就是 讲道理 ……法 律,也 ----即 明示道 理。— —爱·科 克
3、法律是最保险的头盔。——爱·科 克 4、一个国家如果纲纪不正,其国风一 定颓败 。—— 塞内加 5、法律不能使人人平等,但是在法律 面前人 人是平 等的。 ——波 洛克
谢谢!
36、自己的鞋子,自己知道紧在哪里。——西班牙
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯拉罕·林肯
39、勿问成功的秘诀为何,且尽全力做你应该做的事吧。——美华纳
பைடு நூலகம்
40、学而不思则罔,思而不学则殆。——孔子

数字信号处理实验报告实验一

数字信号处理实验报告实验一

实验一:系统响应及系统稳定性1 实验目的(1)掌握求系统响应的方法。

(2)掌握时域离散系统的时域特性。

(3)分析、观察及检验系统的稳定性。

2 实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。

已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。

在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。

也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。

重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。

或者系统的单位脉冲响应满足绝对可和的条件。

系统的稳定性由差分方程的系数决定。

实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件,可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的,系统的稳态输出是指当n→∞时,系统的输出。

如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。

注意在以下实验中均假设系统的初始状态为零。

3 实验内容及步骤(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv 函数求解系统输出响应的主程序。

程序中要有绘制信号波形的功能。

(2)给定一个低通滤波器的差分方程为y(n) = 0.05x(n) + 0.05x(n-1) + 0.9y(n-1)输入信号x1(n) = R8(n) , x8 = u(n)①分别求出x1 = R8(n) 和x8 = u(n) 的系统响应,并画出其波形。

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。

2.应用 DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。

2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。

而要研究离散时间信号,首先需要产生出各种离散时间信号。

使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。

通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告实验⼀信号、系统及系统响应⼀、实验⽬的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利⽤卷积⽅法观察分析系统的时域特性;4、掌握序列傅⽴叶变换的计算机实现⽅法,利⽤序列的傅⽴叶变换对连续信号、离散信号及系统响应进⾏频域分析。

⼆、实验原理及⽅法采样是连续信号数字处理的第⼀个关键环节。

对采样过程的研究不仅可以了解采样前后信号时域和频域特性发⽣变化以及信号信息不丢失的条件,⽽且可以加深对傅⽴叶变换、Z 变换和序列傅⽴叶变换之间关系式的理解。

对⼀个连续信号进⾏理想采样的过程可⽤下式表⽰:,其中为的理想采样,p(t)为周期脉冲,即的傅⽴叶变换为上式表明为的周期延拓。

其延拓周期为采样⾓频率()。

只有满⾜采样定理时,才不会发⽣频率混叠失真。

在实验时可以⽤序列的傅⽴叶变换来计算。

公式如下:离散信号和系统在时域均可⽤序列来表⽰。

为了在实验中观察分析各种序列的频域特性,通常对在[0,2]上进⾏M点采样来观察分析。

对长度为N的有限长序列x(n),有:其中,,k=0,1,……M-1时域离散线性⾮移变系统的输⼊/输出关系为上述卷积运算也可在频域实现三、实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅⽴叶变换及性质等有关内容,阅读本实验原理与⽅法。

2、编制实验⽤主程序及相应⼦程序。

①信号产⽣⼦程序,⽤于产⽣实验中要⽤到的下列信号序列:xa(t)=Ae-at sin(Ω0t)u(t)进⾏采样,可得到采样序列xa(n)=xa(nT)=Ae-anT sin(Ω0nT)u(n), 0≤n<50其中A为幅度因⼦,a为衰减因⼦,Ω0是模拟⾓频率,T为采样间隔。

这些参数都要在实验过程中由键盘输⼊,产⽣不同的xa(t)和xa(n)。

b. 单位脉冲序列:xb(n)=δ(n)c. 矩形序列:xc(n)=RN(n), N=10②系统单位脉冲响应序列产⽣⼦程序。

数字信号处理基础实验报告

数字信号处理基础实验报告

中南大学《数字信号处理》实验报告课程名称数字信号处理指导教师李宏学院信息科学与工程学院专业班级学号姓名实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法; (2) 加深对常用离散时间信号的理解; (3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。

二、实验内容及要求(1)复习常用离散时间信号的有关内容;常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n kn b )单位阶跃序列⎩⎨⎧=01)(n u00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2) 用MATLAB 编程产生上述任意3种序列(长度可输入确定,对(d) (e) (f)中的参数可自行选择),并绘出其图形;()()n x n a u n =程序如下: 1)单位阶跃序列: n=-20:20; xn=heaviside(n); xn(n==0)=1;plot(n,xn);stem(n,xn);axis([-20 20 0 1.2]);title('单位阶跃序列');xlabel('n');ylabel('u(n)');box on得到图像如下:2)单位抽样序列: n=-20:20;xn=heaviside(n)-heaviside(n+1); xn(n==0)=1;plot(n,xn);stem(n,xn);axis([-20 20 0 1.2]);title('单位抽样序列');xlabel('n');ylabel('\delta(n)');box on得到图像如下:-20-15-10-50510152000.20.40.60.81单位阶跃序列nu (n )3)矩阵序列: n=-20:20; N=5;xn=heaviside(n)-heaviside(n-N); xn(n==0)=1;xn(n==N)=0;plot(n,xn);stem(n,xn);axis([-20 20 0 1.2]);title('矩阵序列');xlabel('n');ylabel('R_{N}(n)');box on 得到图像如下:-20-15-10-50510152000.20.40.60.81单位抽样序列n(n )-20-15-10-50510152000.20.40.60.81矩阵序列nR N (n )4)正弦序列:n=-40:40;A=2;w=pi/8;f=pi/4; xn=A*sin(w.*n+f);plot(n,xn);stem(n,xn);axis([-40 40 -4.2 4.2]) title('正弦序列');xlabel('n');ylabel('x(n)');box on得到图像如下:(3) 混叠现象对连续信号01()sin(2***)x t pi f t =其中,01500f Hz =进行采样,分别取采样频率2000,1200,800s f Hz Hz Hz =,观察|)(|jw e X 的变化,并做记录(打印曲线),观察随着采样频率降低频谱混叠是否明显存在,说明原因。

数字信号处理课程设计实验报告

数字信号处理课程设计实验报告

数字信号处理课程设计实验报告(基础实验篇)实验一离散时间系统及离散卷积一、实验目的和要求实验目的:(1)熟悉MATLAB软件的使用方法。

(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。

(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。

(4)熟悉离散卷积的概念,并利用MATLAB计算离散卷积。

实验要求:(1)编制实验程序,并给编制程序加注释;(2)按照实验内容项要求完成笔算结果;(3)验证编制程序的正确性,记录实验结果。

(4)至少要求一个除参考实例以外的实例,在实验报告中,要描述清楚实例中的系统,并对实验结果进行解释说明。

二、实验原理δ的响应输出称为系统1.设系统的初始状态为零,系统对输入为单位脉冲序列()n的单位脉冲响应()h n。

对于离散系统可以利用差分方程,单位脉冲响应,以及系统函数对系统进行描述。

单位脉冲响应是系统的一种描述方法,若已知了系统的系统函数,可以利用系统得出系统的单位脉冲响应。

在MATLAB中利用impz 由函数函数求出单位脉冲响应()h n2.幅频特性,它指的是当ω从0到∞变化时,|()|Aω,H jω的变化特性,记为()相频特性,指的是当ω从0到∞变化时,|()|∠的变化特性称为相频特性,H jωϕω。

离散系统的幅频特性曲线和相频特性曲线直观的反应了系统对不同记为()频率的输入序列的处理情况。

三、实验方法与内容(需求分析、算法设计思路、流程图等)四、实验原始纪录(源程序等)1.离散时间系统的单位脉冲响应clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];impz(a,b,30);%离散时间系统的冲激响应(30个样值点)title('系统单位脉冲响应')axis([-3,30,-2,2]);2.(1)离散系统的幅频、相频的分析方法21-0.3()1 1.60.9425j j j e H z e e ωωω---=-+clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];%a 分子系数,b 分母系数 [H,w]=freqz(a,b,'whole'); subplot(2,1,1);plot(w/pi,abs(H));%幅度 title('幅度谱');xlabel('\omega^pi');ylabel('|H(e^j^\omega)'); grid on;subplot(2,1,2);plot(w/pi,angle(H));%相位 title('相位谱');xlabel('\omega^pi'); ylabel('phi(\omega)'); grid on;(2)零极点分布图clc; clear all a=[1,-0.3];b=[1,-1.6,0.9425]; zplane(a,b);%零极图 title('零极点分布图')3.离散卷积的计算111()()*()y n x n h n =clcclear all% x=[1,4,3,5,3,6,5] , -4<=n<=2 % h=[3,2,4,1,5,3], -2<=n<=3 % 求两序列的卷积 clear all;x=[1,4,3,5,3,6,5]; nx=-4:2; h=[3,2,4,1,5,3];nh=-2:3;ny=(nx(1)+nh(1)):(nx(length(x))+nh(length(h))); y=conv(x,h);n=length(ny);subplot(3,1,1);stem(nx,x);xlabel('nx');ylabel('x'); subplot(3,1,2);stem(nh,h);xlabel('nh');ylabel('h');subplot(3,1,3);stem(ny,y);xlabel('n');ylabel('x 和h 的卷积')五、实验结果及分析(计算过程与结果、数据曲线、图表等)1.离散时间系统的单位脉冲响应051015202530-2-1.5-1-0.500.511.52n (samples)A m p l i t u d e系统单位脉冲响应2.离散系统的幅频、相频的分析方法00.20.40.60.81 1.2 1.4 1.6 1.82102030幅度谱ωp i|H (e j ω)0.20.40.60.811.21.41.61.82-2-1012相位谱ωp ip h i (ω)-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r t零极点分布图3.离散卷积的计算-4-3-2-1012nxx-2-1.5-1-0.500.51 1.522.53nhh -6-4-20246nx 和h 的卷积六、实验总结与思考实验二 离散傅立叶变换与快速傅立叶变换一、实验目的和要求实验目的:(1)加深理解离散傅里叶变换及快速傅里叶变换概念; (2)学会应用FFT 对典型信号进行频谱分析的方法; (3)研究如何利用FFT 程序分析确定性时间连续信号; (4)熟悉应用FFT 实现两个序列的线性卷积的方法; 实验要求:(1)编制DFT 程序及FFT 程序,并比较DFT 程序与FFT 程序的运行时间。

河北大学数字信号处理实验一报告

河北大学数字信号处理实验一报告

班级 学号 姓名实验二 离散时间系统的时域分析一、实验目的(1)加深对时域信号抽样与恢复的基本原理的理解; (2)掌握应用线性卷积求解离散时间系统响应的基本方法;(3)掌握求解离散时间系统冲击响应和频率响应程序的编写方法,了解常用子函数。

二、实验内容1. 已知一个连续时间信号()t f t f t f 00π6sin 31π2sin +=,Hz 10=f ,取最高有限带宽频率05f f h =。

分别显示f (t )的波形和()h s h s h s f f f f f f 2,32==>选,()h s h s f f f f =<选2三种情况下抽样信号波形,并尝试用内插公式重建原信号。

(内插恢复参考程序如示例所示) 程序代码: f0=1; t0=1/f0;t=0:0.01:3*t0;f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); %产生连续时间信号 subplot(7,1,1); plot(t,f);fh=5*f0; %最高有限带宽频率 for i=1:3 fs=i*fh; ts=1/fs; n=0:ts:3*t0;f1=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); %采样subplot(7,1,i+1); %利用循环,分别画fs=3fh,fs=2fh,fs=fh 的波形 stem(n,f1,'filled');f=interp1(n,f1,t,'spline'); %调用内插函数以恢复连续时间信号 subplot(7,1,i+4); plot(t,f); end运行结果:-10100.51 1.52 2.53-20200.511.522.53-10100.51 1.52 2.53-1012. 在MATLAB 中利用内部函数conv 来计算两个有限长序列的卷积。

给出两个序列,试求其卷积结果。

()[]()[]()()()n h n x n y n n h n n x *=≤≤-=≤≤--=519,14,11,20,5,7,18138,6,3,9,5 程序代码:x=[5 9 3 6 -8];h=[18 7 5 20 11 14 9];n=-4:1:6; %对y 中的n 的取值重新定义 y=conv(x,h); %调用conv 函数计算卷积 stem(n,y); xlabel('n'); ylabel('y(n)'); 运行结果:3. 在MATLAB中利用filter函数在给定输入和差分方程时求差分方程的解。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告数字信号处理实验报告一、实验目的本实验旨在通过数字信号处理的方法,对给定的信号进行滤波、频域分析和采样率转换等操作,深入理解数字信号处理的基本原理和技术。

二、实验原理数字信号处理(DSP)是一种利用计算机、数字电路或其他数字设备对信号进行各种处理的技术。

其主要内容包括采样、量化、滤波、变换分析、重建等。

其中,滤波器是数字信号处理中最重要的元件之一,它可以用来提取信号的特征,抑制噪声,增强信号的清晰度。

频域分析是指将时域信号转化为频域信号,从而更好地理解信号的频率特性。

采样率转换则是在不同采样率之间对信号进行转换,以满足不同应用的需求。

三、实验步骤1.信号采集:首先,我们使用实验室的信号采集设备对给定的信号进行采集。

采集的信号包括噪声信号、含有正弦波和方波的混合信号等。

2.数据量化:采集到的信号需要进行量化处理,即将连续的模拟信号转化为离散的数字信号。

这一步通常通过ADC(模数转换器)实现。

3.滤波处理:将量化后的数字信号输入到数字滤波器中。

我们使用不同的滤波器,如低通、高通、带通等,对信号进行滤波处理,以观察不同滤波器对信号的影响。

4.频域分析:将经过滤波处理的信号进行FFT(快速傅里叶变换)处理,将时域信号转化为频域信号,从而可以对其频率特性进行分析。

5.采样率转换:在进行上述处理后,我们还需要对信号进行采样率转换。

我们使用了不同的采样率对信号进行转换,并观察采样率对信号处理结果的影响。

四、实验结果及分析1.滤波处理:经过不同类型滤波器处理后,我们发现低通滤波器可以有效抑制噪声,高通滤波器可以突出高频信号的特征,带通滤波器则可以提取特定频率范围的信号。

这表明不同类型的滤波器在处理不同类型的信号时具有不同的效果。

2.频域分析:通过FFT处理,我们将时域信号转化为频域信号。

在频域分析中,我们可以更清楚地看到信号的频率特性。

例如,对于噪声信号,我们可以看到其频率分布较为均匀;对于含有正弦波和方波的混合信号,我们可以看到其包含了不同频率的分量。

哈工程数字信号处理实验报告1

哈工程数字信号处理实验报告1

数字信号处理实验实验一:基本信号班级:姓名:学号:指导教师:2012年10月实验一:基本信号一:实验原理:本节专注于用MATLAB产生一些基本离散信号的问题。

主要是有那个MATLAB内部向量程序来产生信号。

用MATLAB的stem指令会出离散时间信号。

依据MATLAB的编址约定,标号n=0必须对应nn(1);必须给指定向量的第一个参数以得到正确的n轴。

二:实验内容:1.冲击信号产生并绘出下面的序列。

在每种情况下,水平n轴应该只在指定的区间上展开并应该相应标注。

使用stem指令使每个序列显示成离散时间信号。

x[n]=0.9δ[n-5] 1<=n<=20x[n]=0.8δ[n] -15<=n<=15x[n]=1.5δ[n-333] 300<=n<=350x[n]=4.5δ[n+7] -10<=n<=0L=20;nn=1:(L);imp=zeros(L,1);imp(5)=0.9;stem(nn,imp))L=31;nn=-15:(L-16);imp=zeros(L,1);imp(16)=0.8;stem(nn,imp))L=51;nn=300:350;imp=[zeros(L,1)]'; imp(34)=1.5 stem(nn,imp)L=11;nn=-10:(L-11);imp=zeros(L,1);imp(4)=4.5;stem(nn,imp)实验分析:所得4个图形均符合题目要求3、指数信号衰减的指数信号是数字信号是数字信号处理的基本信号。

因为它是线性常系数差分方程的解。

A.使用函数在区间n=0,1,2,。

,20上绘出信号x[n]=(0.9)ⁿ。

B.在许多推导中,指数信号序列aⁿu[n]须在有限区间上求和。

使用(a)中的函数产生一个指数信号然后对其求和并比较结果。

C.指数序列在信号处理中常常出现的一个原因是,时移并不改变其信号特征。

证明一有限长指数信号满足移位关系:y[n]=ay[n-1], 1<=n<=L-1比较向量y(2:L)和a*y(1:L-1)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Laboratory Exercise1(2class hours) DISCRETE-TIME SIGNALS:TIME-DOMAIN REPRESENTATION Project1.1Unit impulse and unit step sequencesA copy of Program P1_1is given below.%Program P1_1%Generation of a Unit impulse Sequenceclf;%Generate a vector from-10to20n=-10:20;%Generate the unit impulse sequencedelta=[zeros(1,10)1zeros(1,20)];%Plot the unit impulse sequencestem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Impulse Sequence');axis([-10200 1.2]);Answers:Q1.1The unit impulse sequenceδ[n]generated by running Program P1_1is shown below:Q1.2The modified Program P1_1to generate a delayed unit sample sequenceδd[n]with a delay of11samples is given below along with the sequence generated by running this program.%Program Q1.2%Generation of a Unit impulse Sequence with a delay of11samplesclf;n=-10:20;delta=[zeros(1,21)1zeros(1,9)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Impulse Sequence with a delay of11samples');axis([-10200 1.2]);Q1.3The modified Program P1_1to generate a unit step sequence u[n]is given below along with the sequence generated by running this program.%Program Q1.3%Generation of a unit step sequenceclf;n=-10:20;delta=[zeros(1,10),ones(1,21)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Step Sequence');axis([-10200 1.2]);Q1.4The modified Program P1_1to generate a unit step sequence ud[n]with an advance of7 samples is given below along with the sequence generated by running this program.%Program Q1.4%Generation of a unit step sequence with an advance of7samplesclf;n=-10:20;delta=[zeros(1,17),ones(1,14)];stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('Unit Step Sequence with an advance of7samples');axis([-10200 1.2]);Project1.2Exponential signalsA copy of Programs P1_2and P1_3are given below.%Program P1_2%Generation of a complex exponential sequence clf;c=-(1/12)+(pi/6)*i;K=2;n=0:40;x=K*exp(c*n);subplot(2,1,1);stem(n,real(x));xlabel('Time index n');ylabel('Amplitude'); title('Real part');subplot(2,1,2);stem(n,imag(x));xlabel('Time index n');ylabel('Amplitude'); title('Imaginary part');%Program P1_3%Generation of a real exponential sequenceclf;n=0:35;a= 1.2;K=0.2;x=K*a.^n;stem(n,x);xlabel('Time index n');ylabel('Amplitude');Answers:Q1.5The complex-valued exponential sequence generated by running Program P1_2is shown below:Q1.6The purpose of the operator real is:Complex real part.确定一个复数或矩阵的实部;The purpose of the operator imag is:Complex image part.确定一个复数或矩阵的虚部.Q1.7The purpose of the command subplot is:Create axes in tiled positions.(将图形窗口分成多个矩形窗格来显示多个图形)Q1.8The real-valued exponential sequence generated by running Program P1_3is shown below:Q1.9The difference between the arithmetic operators ^and .^is :^数值乘方,而.^矩阵乘方。

Q1.10The length of this sequence is 36.It is controlled by the following MATLAB command line :n=0:35.Q1.11The energies of the real-valued exponential sequencesx[n]generated in Q1.8computedusing the command sum are:sum(abs(x).*abs(x));The energy of a sequence x[n]is defined as ∑∞-∞==n n x E 2][Project 1.3Sinusoidal sequencesA copy of Program P1_4is given below .%Program P1_4%Generation of a sinusoidal sequence n =0:40;f =0.1;phase =0;A = 1.5;arg =2*pi*f*n -phase;x =A*cos(arg);clf;%Clear old graph stem(n,x);%Plot the generated sequenceaxis([040-22]);grid;title('Sinusoidal Sequence');xlabel('Time index n');ylabel('Amplitude');axis;Answers:Q1.12The sinusoidal sequence generated by running Program P1_4is displayed below .Q1.13The average power of the generated sinusoidal sequence is:P=sum(abs(x).*abs(x))/length(n);The average power of periodical signal ][n x is defined as ∑-==102][1N n av n x NP ,where N is the period of ][n x .Q1.14The purpose of axis command is:Control axis scaling and appearance.(手工设置图中坐标尺度)The purpose of grid command is:Grid lines.(在当前图形上增加或减少网络线)Q1.15The sinusoidal sequence of length50,frequency0.08,amplitude2.5,and phase shift of90 degrees generated by modifying Program P1_4is displayed below.Q1.16By replacing the stem command in Program P1_4with the plot command,the plot obtained is as shown below:Q1.17By replacing the stem command in Program P1_4with the stairs command the plot obtained is as shown below:Project1.4Sampling of a Sinusoidal SignalA copy of Program P1_5is given below:Answers:Q1.18The plots of the continuous-time signal and its sampled version generated by running Program P1_5are shown below:Q1.19The plots of the continuous-time sinusoidal signal of frequency3Hz and its sampled version generated by running a modified Program P1_5are shown below:The plots of the continuous-time sinusoidal signal of frequency 7Hz and its sampled version generated by running a modified Program P1_5are shown below :Based on these results we make the following observationsProject 1.5Draw the following signalsQ1.20]7[][][n u n u n x -=clc;clear;close all ;clf;n =-10:20;delta1=[zeros(1,10),ones(1,21)];delta2=[ones(1,18),zeros(1,13)];delta=delta1.*delta2;stem(n,delta);xlabel('Time index n');ylabel('Amplitude');title('x[n]=u[n]u[7-n]');axis([-10200 1.2]);Q1.21][)4/sin(5.0][3.0n u n en x nπ-=clc;clear;close all ;clf;n =-10:20;delta =[zeros(1,10),ones(1,21)];x=0.5*exp(-0.3*n).*sin(n*pi/4).*delta;stem(n,x);xlabel('Time index n');ylabel('Amplitude');title('x[n]=0.5exp(-0.3n)sin(n*pi/4)u[n]');Q1.22][)9/25/sin(3][n u n n x ππ-=clc;clear;close all ;clf;n =-10:20;delta =[zeros(1,10),ones(1,21)];x=3*sin(n*pi/5-2*pi/9).*delta;stem(n,x);xlabel('Time index n');ylabel('Amplitude');title('x[n]=3*sin(n*pi/5-2*pi/9)u[n]');%axis([-10200.4 1.2]);。

相关文档
最新文档