File:Amplitude & phase vs frequency for a 3-term boxcar filter.gif

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Original file(643 × 642 pixels, file size: 17 KB, MIME type: image/gif)

Captions

Captions

Add a one-line explanation of what this file represents

Summary[edit]

Description
English: These graphs depict the same transfer function as File:Frequency response of 3-term boxcar filter.gif. But here, the amplitude is a signed quantity. And where it is negative, the quantity π has been added to the phase plot (before computing the w:principal value). The purpose is to illustrate the linear-phase property of the FIR filter.
Date
Source Own work
Author Bob K
Permission
(Reusing this file)
I, the copyright holder of this work, hereby publish it under the following license:
Creative Commons CC-Zero This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication.
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

Other versions Derivative works of this file:  Amplitude & phase vs frequency for 3-term boxcar filter.svg
GIF development
InfoField
 
This GIF graphic was created with GNU Octave.
Octave/gnuplot source
InfoField
click to expand

This script was derived from the original in order to address some GNUplot bugs: a missing title and two missing axis labels. And to add an Octave print function, which creates an SVG file. Alternatively, the gnuplot screen image has an export function that produces an SVG file, but the π characters aren't as professional-looking.

graphics_toolkit gnuplot
clear all; close all; clc
  
hfig = figure("position",[100 100 509 509]);

x1 = .12;               % left margin for name of Y-variable
x2 = .02;               % right margin
y1 = .10;               % bottom margin for ticks
y2 = .08;               % top margin for title
dy = .08;               % vertical space between rows

width = 1-x1-x2;
height= (1-y1-y2-dy)/2; % space allocated for each of 2 rows

x_origin = x1;
y_origin = 1;           % start at top of graph area
%=======================================================
  N= 256;
  h = [1 1 1]/3;              % impulse response
  H = fftshift(fft(h,N));     % samples of DTFT
  abscissa = (-N/2:N/2-1)*2*pi/N;  % normalized frequency

% Specify the bins that are to show a negative amplitude
  L = floor(N/6);
  negate = [1+(0:L) N-(0:L-1)];
  amplitude = abs(H);
  amplitude(negate) = -amplitude(negate);
  H(negate) = -H(negate);   % compensate the phase of those bins
  phase = angle(H);
%=======================================================
  y_origin = y_origin -y2 -height;        % position of top row
  subplot("position",[x_origin y_origin width height])
  plot(abscissa, amplitude);
% Default xaxislocation is "bottom", which is where we want the tick labels.
% set(gca, "xaxislocation", "origin")
  hold on
  plot(abscissa, zeros(1,N), "color", "black")  % draw x-axis
  xlim([-pi pi])
  ylim([-.4 1.2])
  set(gca, "XTick", [-pi -2*pi/3 0 2*pi/3 pi])
  set(gca, "YTick", [-.2 0 .2 .4 .6 .8 1])
  grid("on")

  ylabel("Amplitude")
% set(gca, "ticklabelinterpreter", "tex")	% tex is the default
  set(gca, "XTickLabel", ['-\pi'; '-2\pi/3'; '0'; '2\pi/3'; '\pi';])
  set(gca, "YTickLabel", ['-.2'; '0'; '.2'; '.4'; '.6'; '.8'; '1';])
  title("Frequency response of 3-term boxcar filter", "fontsize", 12)
%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])
  plot(abscissa, phase);
  xlim([-pi pi])
  ylim([-pi pi])
  set(gca, "XTick", [-pi -2*pi/3 0 2*pi/3 pi])
  set(gca, "YTick", [-pi -2 -1 0 1 2 pi])
  grid("on")

  xlabel('\leftarrow Frequency (\omega) (radians/sample) \rightarrow')
  ylabel("Phase (radians)")
% set(gca, "ticklabelinterpreter", "tex")	% tex is the default
  set(gca, "XTickLabel", ['-\pi'; '-2\pi/3'; '0'; '2\pi/3'; '\pi';])
  set(gca, "YTickLabel", ['-\pi'; '-2'; '-1'; '0'; '1'; '2'; '\pi';])

% The print function results in nicer-looking "pi" symbols
% than the export function on the GNUPlot figure toolbar.
print(hfig,"-dsvg", "-S509,509","-color", ...
'C:\Users\BobK\Amplitude & phase vs frequency for a 3-term boxcar filter.svg')

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current12:47, 2 July 2019Thumbnail for version as of 12:47, 2 July 2019643 × 642 (17 KB)Bob K (talk | contribs)Add a title, and move x-axis label to the bottom.
13:49, 15 April 2014Thumbnail for version as of 13:49, 15 April 2014505 × 509 (9 KB)Bob K (talk | contribs)Change the frequency domain from [][-π,π).]
16:03, 7 April 2014Thumbnail for version as of 16:03, 7 April 2014524 × 521 (9 KB)Bob K (talk | contribs)User created page with UploadWizard

There are no pages that use this file.

File usage on other wikis

The following other wikis use this file: