www.gusucode.com > signal 案例源码程序 matlab代码 > signal/RMSValueOfPeriodicWaveformsExample.m
%% RMS Value of Periodic Waveforms % This example shows how to find the root mean square (RMS) value of a sine % wave, a square wave, and a rectangular pulse train using |rms|. The % waveforms in this example are discrete-time versions of their % continuous-time counterparts. % Copyright 2015 The MathWorks, Inc. %% % Create a sine wave with a frequency of $\pi/4$ rad/sample. The length of % the signal is 16 samples, which equals two periods of the sine wave. n = 0:15; x = cos(pi/4*n); %% % Compute the RMS value of the sine wave. rmsval = rms(x) %% % The RMS value is equal to $1/\surd2$, as expected. % % Create a periodic square wave with a period of 0.1 seconds. The square % wave values oscillate between $-2$ and $2$. t = 0:0.01:1; x = 2*square(2*pi*10*t); stem(t,x,'filled') axis([0 1 -2.5 2.5]) %% % Find the RMS value. rmsval = rms(x) %% % The RMS value agrees with the theoretical value of 2. % % Create a rectangular pulse train sampled at 1 kHz with the following % parameters: the pulse is on, or equal to 1, for 0.025 seconds, and off, or % equal to 0, for 0.075 seconds in each 0.1 second interval. This means the % pulse period is 0.1 seconds and the pulse is on for 1/4 of that interval. % This is referred to as the _duty cycle_. Use |pulstran| to create the % rectangular pulse train. t = 0:0.001:(10*0.1); pulsewidth = 0.025; pulseperiods = [0:10]*0.1; x = pulstran(t,pulseperiods,@rectpuls,pulsewidth); plot(t,x) axis([0 1 -0.5 1.5]) %% % Find the RMS value and compare it to the RMS of a continuous-time % rectangular pulse waveform with duty cycle 1/4 and peak amplitude 1. rmsval = rms(x) thrms = sqrt(1/4) %% % The observed RMS value and the RMS value for a continuous-time % rectangular pulse waveform are in good agreement.