{"id":25176,"date":"2023-10-30T12:47:03","date_gmt":"2023-10-30T11:47:03","guid":{"rendered":"https:\/\/demdlx704as001.ad.harman.com\/?post_type=documentor-sections&#038;p=25176"},"modified":"2023-12-08T11:31:12","modified_gmt":"2023-12-08T10:31:12","slug":"fir-filter-2","status":"publish","type":"post","link":"https:\/\/audioworx.transfunnel.co\/old\/?p=25176","title":{"rendered":"FIR Filter"},"content":{"rendered":"<p><span style=\"font-family: 'times new roman', times, serif;\">The FIR Filter audio object implements a mechanism for time domain FIR filtering. FIR filters are more stable than IIR filters and can be designed to have linear phase response. However, they require a filter of higher order for similar response as an IIR and hence computationally intensive.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">The filter operational mode can be controlled from GTT. The FIR filter coefficients can be provided through GTT custom panel from pre-stored coefficient files in .csv format.<\/span><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\"><em><strong>Use Case:<\/strong> FIR filters are mostly used in applications that require linear phase. They are inherently more stable than IIR filters. However, FIR filters are generally computationally intensive. The applications include:<\/em><\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\"><em>Correction of frequency response errors in a loudspeaker.<\/em><\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\"><em>Phase correction in communication lines.<\/em><\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\"><em>Parametric and crossover filters implemented with FIRs can be implemented with or without phase shift.<\/em><\/span><\/li>\n<\/ul>\n<p class=\"heading\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>FIR Filter Properties<\/strong><\/span><\/p>\n<p>Below table describes about the <span style=\"font-family: 'times new roman', times, serif;\">FIR Filter audio object<\/span> properties and functionality.<\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\"><img fetchpriority=\"high\" decoding=\"async\" width=\"492\" height=\"390\" class=\"wp-image-25117\" src=\"https:\/\/audioworx.transfunnel.co\/old\/wp-content\/uploads\/2023\/08\/a-screenshot-of-a-computer-description-automatica-49.png\" alt=\"A screenshot of a computer Description automatically generated\" \/><\/span><\/p>\n<table style=\"width: 97.518%; height: 181px;\">\n<tbody>\n<tr style=\"height: 10px;\">\n<td class=\"table-head\" style=\"width: 19.0397%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Properties<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 91.5563%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<\/tr>\n<tr style=\"height: 140px;\">\n<td style=\"width: 19.0397%; height: 77px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong># of Channels<\/strong><\/span><\/td>\n<td style=\"width: 91.5563%; height: 77px;\"><span style=\"font-family: 'times new roman', times, serif;\">The FIR Filter audio object has a number of input channels that is double the number of output audio channels.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Range: 1 to 255<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Default: 2<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 140px;\">\n<td style=\"width: 19.0397%; height: 68px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Number of taps for filter<\/strong><\/span><\/td>\n<td style=\"width: 91.5563%; height: 68px;\"><span style=\"font-family: 'times new roman', times, serif;\">Specify the number of elements which is the order of filter.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Range: 2 to 1024<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Default: 2<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 19.0397%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Display Name<\/strong><\/span><\/td>\n<td style=\"width: 91.5563%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\">Display the name of the FIR Filter audio object in signal flow design. It can be changed based on the intended usage of the object.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Mode<\/span><\/strong><\/p>\n<table style=\"width: 97.9607%;\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 14.421%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Mode<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 82.9571%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 14.421%;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Normal<\/span><\/strong><\/td>\n<td style=\"width: 82.9571%;\"><span style=\"font-family: 'times new roman', times, serif;\">The FIR Audio Object shall perform the normal filter operation individually for each channel with the set of coefficients provided for each channel. The filter type can vary for each channel but the number of coefficients of all channels need to be the same.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 14.421%;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Bypass<\/span><\/strong><\/td>\n<td style=\"width: 82.9571%;\"><span style=\"font-family: 'times new roman', times, serif;\">The FIR Audio Object shall copy the input signal to the output buffer bypassing the filter operations. Each channel can be selectively bypassed.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 14.421%;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Off<\/span><\/strong><\/td>\n<td style=\"width: 82.9571%;\"><span style=\"font-family: 'times new roman', times, serif;\">The FIR Audio Object clears the output buffers.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Additional Parameters<\/span><\/strong><\/p>\n<p>There are no additional parameters available for <span style=\"font-family: 'times new roman', times, serif;\">FIR Filter audio object<\/span>.<\/p>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Tuning Parameters<\/span><\/strong><\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">There are two sets of tunable parameters \u2013 mode and coefficients.<\/span><\/p>\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">Mode is a single variable.<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">The number of coefficients depends on the tap-length value configured in GTT.<\/span><\/li>\n<\/ul>\n<p>Let Nc denote the number of coefficients (taps), Ni number of channels. All filter coefficients are stored using floating point format. The filter coefficients are denoted by hi[k] where \u201ci\u201d is the filter\u2019s index ranging from 0 to Ni\u22121 and \u201ck\u201d is the coefficient index (k = 0\u2026Nc\u22121).<\/p>\n<p><span style=\"font-family: 'times new roman', times, serif;\">The generalized offset information of the two tunable parameters can be found below table.<\/span><\/p>\n<p><span style=\"text-decoration: underline;\"><span style=\"font-size: 14pt;\"><span style=\"font-family: 'times new roman', times, serif;\"><span style=\"font-size: 14pt; text-decoration-line: underline; font-family: times new roman, times, serif;\"><b>\u00a0FIR <\/b><\/span><span style=\"font-family: times new roman, times, serif;\"><span style=\"font-size: 18.6667px;\"><b><u>Tunable<\/u><\/b><\/span><\/span><span style=\"font-size: 14pt; text-decoration-line: underline; font-family: times new roman, times, serif;\"><b> Parameters Offset<\/b><\/span><\/span><\/span><\/span><\/p>\n<table style=\"width: 93.3678%; height: 52px;\">\n<tbody>\n<tr style=\"height: 16px;\">\n<td class=\"table-head\" style=\"width: 14.1429%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Name<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 25.001%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 12.7143%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Offset<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 12.6321%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Type<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 12.4548%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Unit<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 108.602%; height: 16px;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Range<\/strong><\/span><\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 14.1429%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\">mode[i]<\/span><\/td>\n<td style=\"width: 25.001%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\">Mode for filter i<\/span><\/td>\n<td style=\"width: 12.7143%; height: 10px;\"><\/td>\n<td style=\"width: 12.6321%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\">UInt32<\/span><\/td>\n<td style=\"width: 12.4548%; height: 10px;\"><span style=\"font-family: 'times new roman', times, serif;\">&#8211;<\/span><\/td>\n<td style=\"width: 108.602%; height: 10px;\">\n<ul>\n<li><span style=\"font-family: 'times new roman', times, serif;\">0 &#8211; Normal<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">1 &#8211; Bypass<\/span><\/li>\n<li><span style=\"font-family: 'times new roman', times, serif;\">2 &#8211; Off<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 14.1429%; height: 26px;\"><\/td>\n<td style=\"width: 25.001%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\">Coefficient k for filter i<\/span><\/td>\n<td style=\"width: 12.7143%; height: 26px;\"><\/td>\n<td style=\"width: 12.6321%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\">float<\/span><\/td>\n<td style=\"width: 12.4548%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\">&#8211;<\/span><\/td>\n<td style=\"width: 108.602%; height: 26px;\"><span style=\"font-family: 'times new roman', times, serif;\">-1.0f; +1.0f<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"text-decoration: underline;\"><span style=\"font-size: 14pt;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">FIR Tuneable Parameters Default Values<\/span><\/strong><\/span><\/span><\/p>\n<table style=\"width: 93.8128%;\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 21.8623%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Name<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 32.6586%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Description<\/strong><\/span><\/td>\n<td class=\"table-head\" style=\"width: 114.368%;\"><span style=\"font-family: 'times new roman', times, serif;\"><strong>Default Values<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 21.8623%;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Mode<\/span><\/strong><\/td>\n<td style=\"width: 32.6586%;\"><span style=\"font-family: 'times new roman', times, serif;\">Operational Mode<\/span><\/td>\n<td style=\"width: 114.368%;\"><span style=\"font-family: 'times new roman', times, serif;\">0 \u2013 Normal<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 21.8623%;\"><strong><span style=\"font-family: 'times new roman', times, serif;\">FIR Coefficients<\/span><\/strong><\/td>\n<td style=\"width: 32.6586%;\"><span style=\"font-family: 'times new roman', times, serif;\">FIR Coefficient Array input<\/span><\/td>\n<td style=\"width: 114.368%;\"><span style=\"font-family: 'times new roman', times, serif;\">[1.0f, 0.0f, 0.0f, \u2026\u2026\u2026 0.0f] \u2013 All pass<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"heading\"><strong><span style=\"font-family: 'times new roman', times, serif;\">Control Parameters<\/span><\/strong><\/p>\n<p>There are no control parameters available for <span style=\"font-family: 'times new roman', times, serif;\">FIR Filter audio object<\/span>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The FIR Filter audio object implements a mechanism for time domain FIR filtering. FIR filters are more stable than IIR filters and can be designed to have linear phase response. However, they require a filter of higher order for similar response as an IIR and hence computationally intensive. The filter operational mode can be controlled [&hellip;]<\/p>\n","protected":false},"author":107,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[]},"categories":[315],"tags":[],"coauthors":[292],"_links":{"self":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25176"}],"collection":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/users\/107"}],"replies":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25176"}],"version-history":[{"count":12,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25176\/revisions"}],"predecessor-version":[{"id":26226,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/25176\/revisions\/26226"}],"wp:attachment":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25176"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcoauthors&post=25176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}